ES10 中的 Array.prototype.{fill,copyWithin} 方法详解

在 ES10 中,JavaScript 新增了一些有用的方法来操作数组。其中,Array.prototype.fill 和 Array.prototype.copyWithin 方法是两个非常实用的数组方法,本文将详细介绍这两个方法的使用和注意事项。

Array.prototype.fill

Array.prototype.fill 方法会用一个固定值填充数组中从起始索引到终止索引内的所有元素。该方法有两个参数:填充值和起始索引。如果只传入填充值,则默认从索引 0 开始填充整个数组。

示例代码:

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

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

注意事项:

  • fill 方法会改变原数组,如果不想改变原数组可以使用 slice 方法创建一个副本再填充。
  • 如果填充值是一个对象或数组,那么填充的是对象或数组的引用,而不是复制对象或数组。

Array.prototype.copyWithin

Array.prototype.copyWithin 方法会从数组的指定位置开始复制元素到数组的另一个指定位置。该方法有两个参数:复制的起始位置和复制的终止位置。如果只传入复制的起始位置,则默认从索引 0 开始复制整个数组。

示例代码:

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

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

注意事项:

  • copyWithin 方法会改变原数组,如果不想改变原数组可以使用 slice 方法创建一个副本再复制。
  • 复制的起始位置和终止位置可以为负数,表示从末尾开始计算的索引位置。

结论

Array.prototype.fill 和 Array.prototype.copyWithin 方法是两个实用的数组方法,它们可以让我们更方便地操作数组。在使用这两个方法时,需要注意它们会改变原数组,如果需要保留原数组,可以使用 slice 方法创建一个副本。

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