Array迭代
1 //迭代方法(ie9+、Firefox2+、Safiari3+、Opera9.5+和Chrome) 2 //--以下方法均不会修改数组的值 3 var arr = [1,2,3,4,5,4,3,2,1]; 4 5 var everyResult = arr.every(function (item, index, array){ 6 return (item > 2) 7 }); 8 alert(everyResult); //全true为true 9 10 var someResult = arr.some(function (item, index, array){ 11 return (item > 2) 12 }); 13 alert(someResult); //一true为true 14 15 var filterResult = arr.filter(function (item, index, array){ 16 return (item > 2) 17 }); 18 alert(filterResult); //3,4,5,4,3 筛选符合条件的所有项 19 20 var mapResult = arr.map(function (item, index, array){ 21 return (item * 10) 22 }); 23 alert(mapResult); //对原始数组的每一项运行传入参数的结果 24 25 //这个方法没有返回值,本质上与使用for循环迭代数组一样 26 arr.forEach(function(item, index, array){ 27 alert(item) 28 });
1 //归并方法(IE9+ Firefox3+ Safari4+ Opera10.5和Chrome) 2 // --两个方法都是迭代数组的所有项,然后构建一个最终返回的值 3 // --两个方法一样 只是遍历是从第一项到最后一项,还是从最后一项到第一项 4 var arr = [1,2,3,4,5] 5 6 var sum1 = arr.reduce(function (prev, cur, index, array){ 7 alert(prev +"-"+ cur) 8 return prev + cur 9 }); 10 alert(num1) //15 11 12 var sum2 = arr.reduceRight(function (prev, cur, index, array){ 13 return prev + cur 14 }); 15 alert(num2) 16 17 //具体原理实例可参考张大神 http://www.zhangxinxu.com/study/201304/array-reduce.html