美文网首页
JavaScript中的数组 (三)

JavaScript中的数组 (三)

作者: huntriver | 来源:发表于2017-07-22 13:28 被阅读0次

在es5中,新增了9个数组方法,大多数方法都有一个大致的特征,他们的第一参数是一个函数,并且对数组中的每个元素都执行该函数<em>(但不包括未初始化或者被删除的元素!!)</em> 。第二个参数是用来指定执行调用函数的this。
下面将介绍几个常用的方法:

  • forEach()
    最简单的方法。遍历整个数组,对每个元素调用指定的函数。
    函数形式:
    function (value,index,array) //value 当前元素;index 当前索引;array 该数组
    相比较于传统的for循环,forEach 方法不可以使用break终止遍历。如果要提前终止,需要在forEach 函数中抛出一个异常。

  • map()
    遍历整个数组,对每个元素调用指定的函数,将返回值组成一个数组作为map的返回结果。
    函数形式:
    function (value,index,array) //value 当前元素;index 当前索引;array 该数组
    回到之前提到的一个问题

var a=new Array(4);
var b=[,,,,]
var c=[undefined ,undefined ,undefined ,undefined ]
console.log(a.map((elem,index)=>index));  // [undefined × 4]
console.log(b.map((elem,index)=>index));  // [undefined × 4]
console.log(c.map((elem,index)=>index));  //[0,1,2,3]

原因就是 map 并不会遍历被删除或者没有被初始化的元素,但他会返回和调用数组相同长度的数组,并具有相同的缺失元素。

  • map 方法并不会改变调用的数组

  • filter()
    过滤方法。遍历整个数组,对每个元素调用指定的函数进行判断。如果函数返回值为true,该元素将被添加到返回的数组中。
    函数形式:
    function (value,index,array) //value 当前元素;index 当前索引;array 该数组
    可以使用filter 过滤掉数组中为undefined 或者null的元素:
    a=a.filter(function(d){return d!==undefined && d!=null;})

相关文章

网友评论

      本文标题:JavaScript中的数组 (三)

      本文链接:https://www.haomeiwen.com/subject/ytdekxtx.html