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

 

 

posted @ 2015-04-02 17:37  willian.J  阅读(128)  评论(0编辑  收藏  举报