一、map
map方法var arr1 = [2,4,7,12,23];
var arr2 = arr1.map((item,index)=>{
if( item == 12 ) {
return item * 2
}
});
var arr3 = arr1.map((item,index)=>{
if( item == 12 ){
return item * 2
}
return item ;
})
console.log('arr2',arr2); // [undefined, undefined, undefined, 24, undefined]
console.log('arr3',arr3); // [2, 4, 7, 24, 23]
map()方法创建了一个新数组,但新数组并不是在遍历完array1后才被赋值的,而是每遍历一次就得到一个值
二、reduce
reduce方法 var arr1 = [2,4,7,12,23];
var arr4 = [{"name":"jizhi"}];
var arr7 = [{"name":"jizhi"},{"name":"biguo"}];
// reduce 求和
var arr5 = arr1.reduce((pre,cur)=>{
return pre + cur;
})
// reduce 转换对象
var arr6 = arr4.reduce((pre,cur)=>{});
var arr8 = arr7.reduce((pre,cur)=>{});
console.log('arr5',arr5); // 48
console.log('arr6',arr6); // {name: "jizhi"}
console.log('arr8',arr8); // undefined
如果没有提供initialValue(索引值),reduce 会从索引1的地方开始执行 callback 方法,跳过第一个索引。如果提供initialValue,从索引位置开始。
三、filter
filter方法 // 去除数组中的null,空字符串,undefined
var arr9 = ['',1,'1123',null,12,undefined,'123'];
var arr10 = arr9.filter((item)=>{
return item ;
})
console.log('arr10',arr10); // [1, "1123", 12, "123"]
// 过滤符合的数值
......
四、forEach
forEach方法 var arr1 = ["1","2","3"];
var arr2 = [];
var arr12 = arr1.forEach((item,index,arr)=>{ })
var arr13 = arr2.forEach((item,index,arr)=>{
console.log('item',item) // 不执行
})
var arr12 = arr1.forEach((item,index,arr)=>{ })
arr1.forEach((item,index,arr)=>{
console.log('item',item) // 执行
})
console.log('arr10',arr10); // [1, "1123", 12, "123"]
console.log('arr12',arr12); // undefined
网友评论