es6中的数组操作方法

111 阅读1分钟

es6中的数组操作方法

用的比较多的es6数组操作方法

var arr = [
      { id: 1, name: 'jack', age: 18 },
      { id: 2, name: 'tom', age: 20 },
      { id: 3, name: 'jerry', age: 22 }
    ]

filter 筛选符合要求的值 过滤符合条件的值生成新数组

   var newArr=arr.filter(item=>{
        if(item.age>18){
            return true
        }
    })
 //  console.log(newArr,111);//[ { id: 2, name: 'tom', age: 20 },{ id: 3, name: 'jerry', age: 22 }]

map 遍历数组生成新数组

   var newArr1=arr.map(item=>{

            return{
            id:item.id,
            name:item.name ,
            age:item.age+1
              }
        })
   //  console.log(newArr1);
    // [
    //   { id: 1, name: 'jack', age: 19 },
    //   { id: 2, name: 'tom', age: 21 },
    //   { id: 3, name: 'jerry', age: 23 }
    // ]

findIndex 返回满足条件的索引值(下标) 且返回第一个

   var newArr2=arr.findIndex(item=>{
          if(item.age>18){
              return true
                 }
             })
      console.log(newArr2,222);//1

find 返回满足条件的第一项 且返回的是个对象

var newArr3=arr.find(item=>{
        if(item.id>1){
            return true
        }
    })
      // console.log(newArr3,333);//{ id: 2, name: 'tom', age: 20 },

some 返回的是个布尔值 只要有一项满足就终止返回true 反之返回false

 var newArr4=arr.some(item=>{
        if(item.age>16){
            return true
        }
      })
      //console.log(newArr4,444);//true

every 遍历的每一项必须满足只要有一项不满足就返回false 反之返回true

     var newArr5=arr.every(item=>{
        if(item.age>17){
            return true
        }
      })
      //console.log(newArr5,555);//true

reduce 求累加和 reduce((sum,item)=>{},0)

var  total=arr.reduce((sum,item)=>sum+=item.age,0)
console.log(total)//60