ECMAScript 2018 中的 Array.prototype.fill 方法使用示例

阅读时长 4 分钟读完

什么是 Array.prototype.fill 方法?

Array.prototype.fill 是 JavaScript 中一个数组方法,用于填充指定长度的数组,并返回新的数组。

在 ECMAScript 2018 标准化之前,我们只能通过使用 for 循环手动给数组填充内容,但是使用 Array.prototype.fill 方法可以更加简洁高效地完成这个任务。

fill 方法接受三个参数:

  • value:用于填充数组的值。
  • start:填充开始位置(数组下标),默认为 0。
  • end:填充结束位置(数组下标),默认为数组长度。

使用示例

示例 1:用默认值填充数组

这个示例中,我们创建了一个长度为 5 的数组 a,然后使用 fill 方法将所有元素的值设置为 0。最终输出 [0, 0, 0, 0, 0]

示例 2:从指定位置开始填充数组

这个示例中,同样是创建了一个长度为 5 的数组 a,但是我们使用了第二个参数 start,指定了填充的起始位置为数组下标为 2 的元素。最终输出 [undefined, undefined, 0, 0, 0],前两个元素为 undefined,因为我们没有对它们进行填充。

示例 3:填充部分数组元素

这个示例中,我们使用了第二个和第三个参数 startend,指定了填充的起始和终止位置。填充范围是从数组下标为 2 的元素(第 3 个元素)到数组下标为 4 的元素(第 5 个元素),但是不包括右侧终止位置的元素。最终输出 [undefined, undefined, 0, 0, undefined]

示例 4:使用对象填充数组

这个示例中,我们使用了一个对象来填充数组,同样是创建了长度为 3 的数组 a,并使用 fill 方法将所有元素都填充为同一个对象 { name: 'Tom', age: 20 }。最终输出 [{ name: 'Tom', age: 20 }, { name: 'Tom', age: 20 }, { name: 'Tom', age: 20 }]

需要注意的是,由于 JavaScript 中的对象是引用类型,相同的对象会被多个变量共享,所以修改任何一个变量所指向的对象,都会影响另一个变量所指向的对象。如果希望填充的每个元素都独立,需要使用不同的对象或者进行深拷贝。

总结

  • Array.prototype.fill 方法用于填充指定长度的数组,并返回新的数组。
  • fill 方法接受三个参数:value、start、end。
  • 没有传入参数时,默认将数组每个元素填充为 undefined。
  • 使用 start 参数可以指定填充的起始位置。
  • 使用 end 参数可以指定填充的终止位置。
  • 如果填充值是对象,需要注意对象引用类型的特点。

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

纠错
反馈