reduce() 和 map() 是 JavaScript 数组的两个常见高阶函数,它们具有不同的功能和用法。
map() 函数:
1.map() 函数用于对数组中的每个元素执行相同的操作,并返回一个新的数组,新数组中的每个元素是原数组经过操作后的结果。
2.map() 函数接受一个回调函数作为参数,该回调函数会对数组中的每个元素进行处理,并将处理后的值放入新的数组中。
3.map() 函数不会改变原始数组,而是返回一个新的数组,新数组的元素个数与原数组相同。
4.适用场景:当需要对数组中的每个元素进行操作,生成一个新的数组时,可以使用 map() 函数。
.reduce() 函数:
1.reduce() 函数用于将数组中的元素逐个迭代处理,并最终通过指定的累加器函数将它们归约(reduce)为单个值。
2.reduce() 函数接受一个累加器函数和一个初始值作为参数,累加器函数定义了如何将数组中的元素聚合为单个值。
3.reduce() 函数会从数组的第一个元素开始迭代,并传递累加器函数的返回值和下一个数组元素给累加器函数,直至处理完所有元素。
4.reduce() 函数的返回值是归约后的单个值。
5.适用场景:当需要将数组中的元素归约为一个值时,可以使用 reduce() 函数。
总结:
1.map() 用于对数组中的每个元素进行操作,返回一个新的数组,元素个数与原数组相同。
2.reduce() 用于将数组中的元素归约为一个值。
3.map() 不改变原始数组,而 reduce() 可能会改变原始数组。
4.map() 返回一个新的数组,而 reduce() 返回归约后的单个值。
注意:reduce() 和 map() 都是纯函数,它们不会修改原数组。如果需要修改原数组,可以使用 forEach() 方法。