JS数组的迭代方法

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/jnshu_it/article/details/85912994

这里是修真院前端小课堂,每篇分享文从

【背景介绍】【知识剖析】【常见问题】【解决方案】【编码实战】【扩展思考】【更多讨论】【参考文献】

八个方面深度解析前端知识/技能,本篇分享的是:

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,初学者转行到互联网的聚集地

猜你喜欢

转载自blog.csdn.net/jnshu_it/article/details/85912994