数组的迭代
迭代器:forEach map every some filter(过滤) reduce
- forEach
forEach(function(value,index,arr){
})
value:数值
index:下标
arr:原数组
var arr2=[3,4,5,6,10,11];
arr2.forEach(function(value,index,arr){
console.log(value+"下标"+index+"原数组"+arr);//3下标0原数组3,4,5,6,10,11
//4下标1原数组3,4,5,6,10,11
//5下标2原数组3,4,5,6,10,11
//6下标3原数组3,4,5,6,10,11
//10下标4原数组3,4,5,6,10,11
//11下标5原数组3,4,5,6,10,11
})
- 映射map
var arr2=[3,4,5,6,10,11];
var result=arr2.map(function(value,index,arr){
return value*2;
})
console.log(result);//[6, 8, 10, 12, 20, 22]
- every 要求自定义条件都符合的情况下才返回true,否则只要有一个条件不成立就返回false
var arr2=[6,4,8,6,10,12];
var result=arr2.every(function(item){
return item % 2== 0;
})
console.log(result);//true
var arr2=[3,4,5,6,10,11];
var result=arr2.every(function(item){
return item % 2== 0;
})
console.log(result);//false
4.some 要求自定义条件只要有一个符合的情况下就返回true,否则返回false
var arr2=[1,3,5,7,9,2];
var result=arr2.some(function(item){
return item % 2== 0;
})
console.log(result);//true
- filter(过滤) 把符合条件的保留返回一个新数组,不符合条件的过滤掉
var arr2=[1,3,5,7,9,2];
var result=arr2.filter(function(item){
return item > 5;
})
console.log(result);//[7, 9]
6.reduce(累加) 如果设置初始值那么初始值为设定值,如果没有设定则为数组中的第一个元素
reduce(function(initValue,currentValue,index,arr){
})
initValue:初始值
currentValue:当前值
index:下标值
arr:原数组
var arr2=[1,3,5,7,9,2];
var result=arr2.reduce(function(a,b){
console.log(a,b);
return a + b;
},10)
console.log(result);//37