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