ES7 中的 Array.prototype.fill 与 Array.prototype.copyWithin 方法的区别

阅读时长 3 分钟读完

在 ES6 中,Array.prototype.fill 被引入,它可以以一次性的方式填充数组中的所有元素。在 ES7 中,Array.prototype.copyWithin 被引入,它可以将元素从数组的一个位置复制到另一个位置。

虽然这两种方法都用于修改数组,但它们的功能和使用方式不同。

Array.prototype.fill 方法

Array.prototype.fill 方法接受两个参数:要填充的值和起始索引。

以下是一个简单的例子,演示如何使用 Array.prototype.fill 方法:

在上面的示例中,new Array(5).fill(0) 创建了一个长度为 5 的数组,并用零值填充了所有元素。

Array.prototype.copyWithin 方法

Array.prototype.copyWithin 方法接受两个参数:目标位置和起始复制位置。它还接受一个可选参数:结束复制位置。

以下是一个简单的例子,演示如何使用 Array.prototype.copyWithin 方法:

上面的示例将从索引 3 开始的元素 [4, 5] 复制到索引 0 和 1 上,覆盖了最初的元素 [1, 2]

区别

虽然 Array.prototype.fillArray.prototype.copyWithin 都用于修改数组,但它们的行为是不同的。以下是两种方法的区别:

  1. Array.prototype.fill 填充数组所有元素的值,而 Array.prototype.copyWithin 复制数组元素的值。
  2. Array.prototype.fill 只提供了一个起始索引,而 Array.prototype.copyWithin 提供了两个索引,可以控制复制的位置和个数。

总结

Array.prototype.fillArray.prototype.copyWithin 分别用于填充数组所有元素的值和复制数组元素的值。了解它们的区别可以使您在编写更清晰的代码时更好地利用它们。

提示:在使用这两种方法时,请仔细阅读它们的文档,以确保正确使用它们。

参考资料:

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

纠错
反馈