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