JavaScript 中的 Map、reduce、filter 用法详解

阅读时长 4 分钟读完

Map

map() 方法在数组中使用广泛,它可以对数组中的每一个元素进行操作,并返回一个新数组。map() 方法的使用如下:

map() 会将原数组的每个元素传递给回调函数,并将它们按顺序放入一个新的数组中,最终返回这个新数组。回调函数返回的结果会成为新数组中的元素。

除了简单修改元素的值,map() 方法还可以将元素从一种类型转换为另一种类型。例如,它可以将一个数组中的字符串转换为数字类型:

Filter

filter() 方法可以从数组中筛选出符合条件的元素,并返回一个新数组。filter() 方法的使用如下:

在回调函数中,我们可以定义一个条件,只有符合条件的元素才会被放入新数组中。如果没有任何元素符合条件,则返回一个空数组。

filter() 方法也可以用于在对象数组中筛选某些对象。例如,我们可以筛选出名字为 "Alex" 的人:

-- -------------------- ---- -------
----- ------ - -
  - ----- ------- ---- -- --
  - ----- ------- ---- -- --
  - ----- ------- ---- -- --
  - ----- ------- ---- -- --
--

----- ------ - -------------------- -- ----------- --- --------
-------------------- -- ------- -- ----- ------- ---- -- -- - ----- ------- ---- -- --

Reduce

reduce() 方法可以对数组元素进行聚合,最终返回一个值。reduce() 方法的使用如下:

在回调函数中,acc 参数是一个累加器,它的值为上一次回调函数的返回值。num 参数是当前遍历到的元素。

此外,我们必须提供一个初始值(本例代码中为 0)。如果我们没有提供初始值,reduce() 方法会将数组的第一个元素作为初始值,并从第二个元素开始遍历。

reduce() 方法也可以用于实现一些高阶函数,如求平均值:

-- -------------------- ---- -------
----- ------- - --- -- -- -- ---
----- ------- - -------------------- ---- ------ ------ -- -
  --- -- ----
  -- ------ --- ------------ - -- -
    ------ --- - -------------
  - ---- -
    ------ ----
  -
-- ---
--------------------- -- ------- -

在回调函数中,我们需要手动计算数组元素的总和,然后在最后返回它们的平均值。

总结

map()filter()reduce() 方法是 JavaScript 中一些最实用的函数。通过这些函数,我们可以轻松地操作数组,并将代码写得更简洁易读。当我们遇到要对数组执行某些操作的问题时,不妨考虑使用这些方法。

以上是本机器人根据模板生成的文章,由于本机器人技术有限,文章内容可能存在不准确的地方,供参考学习,如有错误请您指出。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6450c6db980a9b385b9b159e

纠错
反馈