js中有很多有用的迭代器:
forEach:不生成新数组
map:生成新数组
var number=[1,5,3,4,5,3,6,7,8,9];
number.forEach(function(a){
console.log(a*2); // 2106810612141618
});
var box=number.map(function(a){
alert(a*2); //2106810612141618
return a*2;
});
console.log(box); //[2, 10, 6, 8, 10, 6, 12, 14, 16, 18]
every:不生成新数组
filter:生成新数组
var number=[1,5,3,4,5,3,6,7,8,9];
var box1=number.every(function(a){
return a>2;
});
var box2=number.filter(function(a){
return a>2;
});
alert(box1); //false
alert(Array.isArray(box2)); //true
alert(box2); //5,3,4,5,3,6,7,8,9
some
var number=[1,5,3,4,5,3,6,7,8,9];
alert(number.some(function(a){
return a>2;
})); //true
reduce和reduceRight
var number=[1,5,3,4,5,3,6,7,8,9];
alert(number.reduce(function(a,b){
return ''+a+b;
})); //1534536789
alert(number.reduceRight(function(a,b){
return ''+a+b;
})); //9876354351