×

学习JS数组的迭代应用

作者:cidy20172019.01.10来源:Web前端之家浏览:7697评论:0

学习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()方法。

您的支持是我们创作的动力!
温馨提示:本文作者系 ,经Web前端之家编辑修改或补充,转载请注明出处和本文链接:
https://www.jiangweishan.com/article/bianli234234234.html

网友评论文明上网理性发言 已有0人参与

发表评论: