原生js 数组的迭代的方法
一、原生js Array给我们提供很多了方法。方便我们操作数组.这些方法的参数,都需要传入一个匿名函数,匿名函数中有三个参数,分别含义是:数组中的项、该项的索引、以及数组本身。
1、filter方法:对数组每一项执行匿名函数,并返回符合条件的数组的项。
1 var testArr=[1,2,3,4,52,2]; 2 //filter 方法 3 var moreTwo=testArr.filter(function(item,index,array){ 4 return item >2; 5 }); 6 console.log(moreTwo);
2、map方法:对数组中每一项进行操作,返回值为匿名函数操作的所有项。
1 var addTwo=testArr.map(function(item,index,ar){ 2 return item+=2 3 }); 4 console.log(addTwo);
3、every()和some()方法:对传入的匿名函数进进行判断,这两个函数返回值为:boolean值,every()返回所有项满足给定条件时返回true,而some(),只要有一个满足条件就返回true。
1 var everBoolean=testArr.every(function(val,index,arr){ 2 return val>2; 3 }); 4 var someBoolean=testArr.some(function(v,i,arr){ 5 return i>2 6 }); 7 console.log(everBoolean,someBoolean);
4、forEach() 没有返回值,只是对于数组中每一项执行操作。
1 var forEachVal=testArr.forEach(function(v,i,arr){ 2 return v+=2; 3 } ) 4 console.log(testArr,forEachVal);
二、 总结:
上面的方法并没有修改原先的数组结构,而是需要我们创建一个新的副本进行储存符合我们的条件的值或者进行一些逻辑判断。而jquery 框架中,可以直接进行修改,但是我们也进行修改,因为在匿名的函数中第三个参数就是当前传入值为我们之前定义的数组的指针,所以我们可以进行修改。
但是这些方法对于我们来说满足我们日常的需求。
1 var addModTwo=testArr.map(function(item,index,ar){ 2 ar[index]=item+2; 3 return item+=2 4 }); 5 console.log(testArr)
所以灵活使用上面的方法,来解决实际问题。
学习是一种态度,坚持是质变的利器!