迭代方法:every() some() filter() forEach() map()
一:every()
我的理解:如果数组中的有一项item不满足条件,就停止迭代,返回false(跟每件判断的 && 有点相似)
<script type="text/javascript">
var arr = [1,4,8,9,2,3];
var res = arr.every(function(item,index,array){
/*
* item 数据的每一项
* index 数据的每一项下标
* array 迭代的数组
*/
console.log(item);
return item<8;
})
console.log(res);
</script>
控制台显示
1
4
8
false
也就是说当迭代到数组的第三项(item为8时) 不满足 item < 8 的条件 退出循环,返回false
二:some()
我的理解:如果数组中每一项item都不满足return 的返回条件时,返回false。至少有一项满足时就返回true
<script type="text/javascript">
var arr = [1,4,8,9,2,3];
var res = arr.some(function(item,index,array){
/*
* item 数据的第一项
* index 数据的下标
* array 迭代的数组
*/
console.log(item);
return item>8;
})
console.log(res);
</script>
控制台显示
1
4
8
9
true
当item为9时 满足 return的条件 停止迭代,返回true
三:filter() 迭代数组的所有item 返回满足条件的,组成一个新的数组
<script type="text/javascript">
var arr = [1,4,8,9,2,3];
var res = arr.filter(function(item,index,array){
/*
* item 数据的第一项
* index 数据的下标
* array 迭代的数组
*/
console.log(item);
return item>7;
})
console.log(res);
</script>
控制台显示
1
4
8
9
2
3
Array [8, 9 ]
只有8,9大于7 返回组成新的数组
四:map() 对数组的每一项 时行操作 返回 组成新的数组
<script type="text/javascript">
var arr = [1,4,8,9,2,3];
var res = arr.map(function(item,index,array){
/*
* item 数据的第一项
* index 数据的下标
* array 迭代的数组
*/
return item%2;
})
console.log(res);
</script>
控制台显示
Array [ 1, 0, 0, 1, 0, 1 ]
我们对数组的每一项进行 除2求余,可以判断 是奇数还是偶数
五:forEach() 单纯的对数组进行迭代