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():让数组的前后两项进行某种计算,然后返回其值,并继续计算,不改变原数组,返回计算的最终结果,从数组的第二项开始遍历.后续了解reduce用法还是很厉害的,后面会总结一篇关于使用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 = [];
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。