关于数组中foreach-mapfilter等以及pushunshift等总结

25次阅读

共计 1761 个字符,预计需要花费 5 分钟才能阅读完成。

1. 关于数组中 foreach()、map()、filter()、reduce()、some()、every() 的总结。

1.forEch(): 遍历数组,不改变原数组,只是遍历

var arr = [1,2,3,4];
arr.forEach((item,index,arr) => {console.log('当前值:'+item);   // 依次输出 1,2,3,4
    console.log('当前值对应的索引:'+index); // 依次输出 0,1,2,3
    console.log('原数组:'+arr);     // 依次输出 4 个 [1,2,3,4]
})  

2.map(): 遍历数组,返回一个新数组,不改变原数组

var arr = [1,2,3,4];
var arr2=arr.map((item,index,arr2) => {if(item == 1) {return item}else {return item+1}
})  
console.log(arr2); // 输出 [1,3,4,5]

3.filter(): 遍历数组过滤符合条件的筛选,并返回一个新数组,不改变原数组

var arr = [1,2,3,4];
var arr2=arr.filter((item,index,arr2) => {return item > 2;})  
console.log(arr2);// 输出 [3,4]

4.indexOf(),lastIndexOf():

var arr = [1,2,3,4,2];
console.log(arr.indexOf(2));    // 输出 1
console.log(arr.lastIndexOf(2));// 输出 4 

5.reduce(): 让数组的前后两项进行某种计算, 然后返回其值,并继续计算, 不改变原数组, 返回计算的最终结果,从数组的第二项开始遍历

var arr = [1,2,3,4];
var arr2=arr.reduce((result,item,index,arr2) => {console.log(result);
    console.log(item);
    return result * item;
})                       // 依次输出 1,2,2,3,6,4
console.log(arr2);       // 输出 24

6.some():遍历数组每一项, 有一项返回 true, 则停止遍历,结果返回 true。不改变原数组。
7.every(): 遍历数组每一项,每一项返回 true, 最终结果为 true. 有一项返回 false, 停止遍历, 结果返回为 false。不改变原数组。

2.push()、pop() 和 unshift()、shift()

这两组同为对数组的操作,并且会改变数组的本身的长度及内容。
不同的是 push()、pop() 是从数组的尾部进行增减,unshift()、shift() 是从数组的头部进行增减。
1.push() 和 unshift()
向数组的 尾部 / 头部 添加若干元素,并返回 数组的 新长度;

var arr = [1,2];
arr.push(3,4);              // 返回 arr 的新长度 4
arr;                        // arr = [1,2,3,4];
arr.unshift(0,0.5);         // 返回 arr 的新长度 6
arr;                        // arr = [0,0.5,1,2,3,4];

2.pop() 和 shift();
从数组的 尾部 / 头部 删除 1 个元素 (删且只删除 1 个),并返回 被删除的元素;空数组是继续删除,不报错,但返回 undefined;

arr.pop();      // 返回 4;arr ;          // arr = [0,0.5,1,2,3];
arr.pop();      // 返回 3;arr ;         // arr = [0,0.5,1,2];
arr.shift();// 返回 0;arr ;        // arr = [0.5,1,2]
PS: pop() 和 shift() 不接受传参,即使传了参数也没什么卵用~~;arr.pop(3) ;           // 返回 2;永远返回最后一个;arr ;        // arr = [0.5,1];
arr.shift(1);    // 返回 0.5; 永远返回第一个;arr ;        // arr = [1];
arr.pop() ;     // 返回 1;arr ;        // arr = [];
arr.shift()     // 返回 undefined;arr ;        // arr = [];

正文完
 0