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]
posted @ 2017-06-15 14:46    阅读(155)  评论(0编辑  收藏  举报