数组方法整理

2019-08-19  本文已影响0人  叫我王必过

一、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
上一篇下一篇

猜你喜欢

热点阅读