数组方法

作者: 貓咪是大王 | 来源:发表于2019-09-20 17:12 被阅读0次

    1.map映射(一个对一个遍历数组)有return 返回一个新数组

    用法:arr.map(callback)
    callback的参数:

    value --当前索引的值
    index --索引
    array --原数组

    • 例如:将数组中的每一项乘以2,并输出新数组
    let arr = [10,8,9,5];
    let result=arr.map((value,index,array) => {
        console.log(`value:${value}    index:${index}     array:${array}`)
        return value*2;
    })
    alert(result);
    
    结果
    结果

    2.reduce 汇总

    用法:arr.reduce(callback, initialValue)
    callback的参数:

    preValue 必选 --上一次调用回调返回的值,或者是提供的初始值(initialValue)
    curValue 必选 --数组中当前被处理的数组项
    index 可选 --当前数组项在数组中的索引值
    array 可选 --原数组

    initialValue: 可选 --初始值
    • 例如:计算下面数组的平均值
    let arr=[66,99,33,51,3,6];
    let result = arr.reduce((preValue, curValue ,index) => {
        if(index != arr.length-1){//不是最后一次,则把每次拿到的数累加
            return preValue +  curValue ;
        }else{
            return (preValue +  curValue )/arr.length;//最后一次把每次拿到的数除以数组长度求出平均值
        }
    })
    console.log(result);
    
    结果

    回调函数第一次执行时,preValue 和 curValue 可以是一个值,如果 initialValue 在调用 reduce() 时被提供,那么第一个 preValue 等于 initialValue ,并且curValue 等于数组中的第一个值;如果initialValue 未被提供,那么preValue 等于数组中的第一个值.

    3.filter过滤器,过滤数组,返回一个满足要求的数组

    用法:arr.filter(callback)
    • 例如:返回下面数组中能被3整除的数
    let arr = [33,66,11,44,66,99,125];
    let result = arr.filter(item => item%3==0 );
    console.log(result);
    
    结果

    4.forEach循环(迭代),遍历数组,无return

    用法:arr.forEach(callback)
    callback的参数:

    value --当前索引的值
    index --索引
    array --原数组

    • 例如:将数组中的每一项乘以2
    var arr = [11,22,33,44,55];
    arr.forEach((value,index,array) => {
        value = value*2;
        console.log(`value:${value} index:${index} array:${array}`);
    })
    console.log(arr);
    
    结果
    总结:arr.forEach()和arr.map()的区别
    1. arr.forEach()是和for循环一样,是代替for。arr.map()是修改数组其中的数据,并返回新的数据。
    2. arr.forEach() 中没有return, 而arr.map() 有return

    感谢:https://www.cnblogs.com/sqh17/p/8529401.html

    相关文章

      网友评论

        本文标题:数组方法

        本文链接:https://www.haomeiwen.com/subject/hsmjuctx.html