ES11 中 Array.prototype.{filter,map,reduce,reduceRight,sort,find,findIndex} 的语义更新

前言

JavaScript 是一门非常灵活的语言,它的灵活性使得在开发过程中可以快速地实现各种功能,但也因此带来了一些问题,比如代码可读性差、代码重复等。为了解决这些问题,ES11 对 Array.prototype 提供的一些方法进行了语义更新,本文将介绍这些更新内容。

filter

filter 方法用于过滤数组中的元素,返回一个新的数组,新数组中的元素是通过回调函数的返回值为 true 的元素组成的。

在 ES11 中,filter 方法新增了一个参数,用于指定回调函数的 this 值。

示例代码:

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

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

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

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

map

map 方法用于将数组中的元素转换为新的元素,返回一个新的数组。

在 ES11 中,map 方法新增了一个参数,用于指定回调函数的 this 值。

示例代码:

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

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

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

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

reduce

reduce 方法用于将数组中的元素归纳为一个值,返回这个值。

在 ES11 中,reduce 方法新增了一个参数,用于指定回调函数的 this 值。

示例代码:

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

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

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

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

reduceRight

reduceRight 方法与 reduce 方法类似,只不过它是从右往左归纳。

在 ES11 中,reduceRight 方法新增了一个参数,用于指定回调函数的 this 值。

示例代码:

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

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

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

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

sort

sort 方法用于对数组进行排序。

在 ES11 中,sort 方法的默认排序规则发生了改变,现在使用的是稳定排序算法。

示例代码:

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

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

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

find

find 方法用于查找数组中第一个满足条件的元素,返回这个元素。

在 ES11 中,find 方法新增了一个参数,用于指定回调函数的 this 值。

示例代码:

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

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

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

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

findIndex

findIndex 方法与 find 方法类似,只不过它返回的是满足条件的元素在数组中的下标。

在 ES11 中,findIndex 方法新增了一个参数,用于指定回调函数的 this 值。

示例代码:

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

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

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

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

总结

ES11 对 Array.prototype 提供的一些方法进行了语义更新,使得这些方法更加灵活、易读、易用。在实际开发中,我们可以根据这些更新内容,更加方便地进行数组操作。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/65dd66c81886fbafa4ac60e7