map,reduce,filter使用



<script> var arr = [ { age:11, name:'aa' }, { age:22, name:'bb' }, { age:33, name:'cc' } ] // map 使用 var age = arr.map((item,index)=>{ console.log(item,index) //数组项,下标 return item.age }) console.log(age) //  [11, 22, 33] // es6写法 var ageEs6 = arr.map(item=>item.age) console.log(ageEs6) //  [11, 22, 33] // reduce // 累加计算 var ageR = arr.reduce((n,y)=>{ console.log(n, y, y.age) // n:初始值 y:循环项 return n + y.age },0) //第二个参数定义初始值 console.log(ageR) //0 + 11 + 22 + 33 = 66 获取最终结果 // es6写法 var ageRes6 = arr.reduce((n,y)=> n + y.age, 0) console.log(ageRes6) //66
  
  案例:合并数组对象里的子数组
  
var arr = [
        {
            title:'11',
            arrChild:[
                {
                    name:'a',
                    age:12
                }
            ]
        },
        {
            title:'22',
            arrChild:[
                {
                    name:'b',
                    age:12
                }
            ]
        },
        {
            title:'33',
            arrChild:[
                {
                    name:'c',
                    age:12
                }
            ]
        },
        
    ]

    let newArr = arr.reduce((a,b)=>
        a.concat(b.arrChild)
    ,[])
    console.log(newArr);////[{name: "a", age: 12},{name: "b", age: 12},{name: "b", age: 12}]

 


// filter 过滤 var arrName = arr.filter((item)=>{ return item.name == 'cc' }) var arrName2 = arr.filter(item=> item.name == 'cc') console.log(arrName,arrName2) // [ {age:33,name:'cc'} ] var arrAge = arr.filter(item=> item.age > 20) console.log(arrAge) </script>

  

posted @ 2021-07-02 15:08  张健华  阅读(48)  评论(0编辑  收藏  举报