这里是修真院前端小课堂,每篇分享文从
【背景介绍】【知识剖析】【常见问题】【解决方案】【编码实战】【扩展思考】【更多讨论】【参考文献】
八个方面深度解析前端知识/技能,本篇分享的是:
【JS数组的迭代方法 】
一、背景介绍
在ECMAscript中定义了5种数组迭代的方法,分别是:every、filter、forEach、map、some
二、知识剖析
every():对数组的每一项运行给定函数,如果该函数对每一项都返回true,则返回true,否则返回false
some():对数组的每一项运行给定函数,如果该函数对任一项返回true,则返回true
filter():对数组的每一项运行给定函数,返回该函数会返回true的项组成的数组
map():对数组的每一项运行给定函数,返回每次函数调用的结果组成的数组
forEach():对数组的每一项运行给定函数,这个方法没有返回值
三、常见问题
数组迭代方法的区别和使用方法
四、解决方案
区别: 以上五种迭代方法都是对数组进行一定的操作,已达到我们想要的结果;
every()和some()方法对数组进行迭代,最后返回的值是一个布尔值,换句话说这两种方法是对数组进行判断时使用的,我们并 不能直接使用返回的值。需要结其他方法是返回值发挥作用
filter()和map()方法最后返回的是符合我们要求的数组,可以直接进行使用。
forEach()方法不会返回任何值,只会执行某些操作。与for循环类似、
注意:这几种迭代方法都不会改变原数组,只会返回相应的值或数组。
使用方法:
var number = [1,2,3,4,5,6,7,8,9];//先定义一个数组,方便掩饰
var ereryRes = number.every(function (p1) {
return (p1>2);
})
alert(ereryRes) //false
var someRes = number.some(function (p1) {
return (p1>2);
})
alert(someRes) //ture
var filterRes = number.filter(function (p1) {
return (p1>2);
})
alert(filterRes) //3,4,5,6,7,8,9
var mapRes = number.map(function (p1) {
return p1*2
})
alert(mapRes) //2,4,6,8,10,12,14,16,18
var forEachRes = number.forEach(function (p1) {
//执行某种操作
})
alert(forEachRes) //不会返回值,只会执行操作,与for循环类似
五、扩展思考
如何根据问题选择选择迭代方法
上面已经提到,
当我们需要对数组进行判断以实现某种方法,可以选用every()和some()方法
当我们需要对数组筛选和对其进行更改而产生新的数组时,可以使用filter()和map()方法、
当我们需要遍历数组可以使用forEach()方法
六、参考资料
《JS高级程序设计》
视频地址:https://v.qq.com/x/page/w05006koxxn.html
PPT地址: https://ptteng.github.io/PPT/PPT/js-4-shuzu%20diedai.html#/
更多内容,可以加入IT交流群565734203与大家一起讨论交流
这里是技能树·IT修真院:https://www.jnshu.com,初学者转行到互联网的聚集地