数组的map与forEach方法

163 阅读2分钟

ECMAScirpt5中定义了9个新的数组方法来遍历,映射,过滤,简化和搜索数组,其中map和forEach表示遍历数组。 首先,大多数方法的第一个参数接收一个函数,并且对数组的每个元素(或一些元素)调用一次改函数,在大多数情况下,调用提供的函数使用三个参数:数组中的元素,元素的索引和数组本身。通常只需要第一个参数,可以忽略后面2个参数。

1.forEach()

forEach()方法从头至尾遍历函数,为每个元素调用指定的函数。如上所述,传递的函数作为forEach()的第一个参数。然后forEach()使用三个参数调用该函数:数组元素,元素索引,元素自身。如果只关系数组元素的值,可以写只有一个参数的函数,其他可以省略。

forEach()的另一个特点是没有返回值

可以看到新数组是undefined,没有返回值,不写return可以直接打印出来,会改变原数组

2.map()

map()方法也可以用来遍历数组中的元素,但是将调用数组的每个元素传递给指定的函数,并返回一个数组,他包含了该数组的返回值。例如:

传递给map()的函数的调用方式和传递给forEach( )的函数的调用方式一样。但传递给map()的函数该有返回值。注意,map()返回的是新数组:它不修改调用的数组。如果是稀疏数组,返回的也是相同方式的稀疏数组:它具有相同的长度,相同的缺失元素。

注:map需要返回值,如果不给return,默认返回undefined,map返回的是一个新数组。

forEach 本身无法中途跳出forEach循环,break命令或return命令都无效。必须遍历所有的数据才能结束。