首页 > 代码库 > 数组迭代方法和类数值

数组迭代方法和类数值

  数组的迭代方法有every,some,forEach,fliter,map。

  每个方法的参数是一个函数,函数的第一个参数是数组项,第二个参数是数组项的索引,第三个参数是数组本身

  every方法对数组的每一项执行给定函数,如果每一项的执行结果都为true,则返回true;

1 //用every方法检测数组的每一项是否都是偶数,是则返回true,不是则返回false2     function testEvery(){3         var a=[1,2,5,0,3,9];4        var result= a.every(function(item){5            return item%2==0;6         });7         console.log(result);8     }9     testEvery();//结果false

  some方法对数组每一项执行给定函数,如果有至少一项满足条件,则返回true,否则返回false

1 //用some方法检测数组中书否有偶数项,有则返回true,无则返回false2     function testSome(){3         var a=[1,2,5,0,3,9];4         var result= a.some(function(item){5             return item%2==0;6         });7         console.log(result);8     }9     testSome();//结果为true

  forEach方法对数组每一项执行函数,没有返回值,和for循环一样的效果

 1  //用forEach方法把数组中大于3的数变成3 2     var a=[1,2,5,0,3,9]; 3     function testForEach(){ 4         a.forEach(function(item,index,arr){ 5             if(item>3){ 6                 arr[index]=3; 7             } 8         }) 9     }10     testForEach();11     console.log(a);//结果[1,2,3,0,3,3]

 

  filter方法对数组的每一项执行函数,返回结果为true的项组成的数组

1 //获得数组中的值为偶数的项2     function testFilter(){3         var a=[1,2,5,0,3,9];4         var result=a.filter(function(item){5             return item%2==0;6         })7         console.log(result);8     }9     testFilter();//结果[2,0]

  map方法对数组的每一项执行函数,返回结果

//数组项加倍    function testMap(){        var a=[1,2,5,0,3,9];        var result=a.map(function(item){            return item*2;        })        console.log(result);    }    testMap();//结果[2,4,10,0,6,18]

 

对类数组直接运用数组的迭代方法会报错

//对类数组,比如arguments childNodes    function likeArray(){        var b=arguments.map(function(item){            return item>0;        })
     console.log(b); } likeArray(
5,-2,3,8,-9);//报错

对类数组运用Array.prototype.方法.call(类数组,参数)进行转换后可以使用数组方法

1 //转换后2     function testLikeArray(){3         var b=Array.prototype.filter.call(arguments,function(item){4             return item>0;5         })6         return b;7     }8     var result=testLikeArray(1,3,-10,-6,-8,22);9     console.log(result);//结果[1,3,22]