首页 > 代码库 > 数组迭代方法和类数值
数组迭代方法和类数值
数组的迭代方法有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]
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。