JavaScript 数组(Array)方法(二)
forEach
ES5新增的方法,Arr.forEach((value, index,array)=>{});
let arr=['a','b','c'];
arr.forEach((val,idx,arr)=>{
console.log(val);
console.log(idx);
console.log(arr);
})
map
映射(一一对应)。[].map();基本用法跟forEach方法类似。callback需要有return(如果没有,返回undefined)
let arr=['a','b','c'];
let newArr=arr.map((val,idx,arr)=>{
console.log(val);
console.log(idx);
console.log(arr);
return val+idx
})
console.log(newArr)
filter
过滤筛选(callback在这里担任的是过滤器的角色,当元素符合条件,过滤器就返回true,而filter则会返回所有符合过滤条件的元素)。
let arr2=['a','b',10,20,'11'];
let result2=arr2.filter((val,idx,arr)=>{
console.log(val)
console.log(idx)
console.log(arr)
return typeof val=='string'
})
console.log(result2)
reduce
reduce 为数组中的每一个元素依次执行回调函数,不包括数组中被删除或从未被赋值的元素,接受四个参数:初始值(或者上一次回调函数的返回值),当前元素值,当前索引,调用 reduce 的数组。
[0,1,2,3,4].reduce(function(previousValue, currentValue, index, array){
...
});
let flattened = [[0, 1], [2, 3], [4, 5]].reduce(function(a, b) {
return a.concat(b);
});
console.log(flattened) // [0, 1, 2, 3, 4, 5]