美文网首页
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