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():遍历数组,返回一个新数组,不改变原数组code
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():it
var arr = [1,2,3,4,2]; console.log(arr.indexOf(2)); //输出1 console.log(arr.lastIndexOf(2));//输出4
5.reduce():让数组的先后两项进行某种计算,而后返回其值,并继续计算,不改变原数组,返回计算的最终结果,从数组的第二项开始遍历console
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。不改变原数组。ast
这两组同为对数组的操做,而且会改变数组的自己的长度及内容。
不一样的是 push()、pop() 是从数组的尾部进行增减,unshift()、shift() 是从数组的头部进行增减。
1.push()和unshift()
向数组的 尾部/头部 添加若干元素,并返回 数组的 新长度;foreach
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 = [];