首页 >web前端 >js教程 >使用Array.prototype.fill()时如何确保对象唯一?

使用Array.prototype.fill()时如何确保对象唯一?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-12-18 16:50:20260浏览

How Can I Ensure Unique Objects When Using Array.prototype.fill()?

Array.prototype.fill():将对象作为引用传递

Array.prototype.fill() 方法是一个方便的实用程序使用指定值初始化数组。但是,当用对象填充数组时,对象将作为引用传递,而不是创建新实例。这种行为提出了一个问题:是否有办法确保数组的每个元素都是唯一的对象。

考虑以下示例:

var arr = new Array(2).fill({});
console.log(arr[0] === arr[1]); // true

在此示例中,有两个对象创建并作为对 arr[0] 和 arr[1] 的引用传递。修改数组的一个元素会影响另一个元素,因为它们是同一个对象:

arr[0].test = 'string';
console.log(arr[1].test); // 'string'

要使用 Array.prototype.fill() 为数组的每个元素创建一个新对象,您可以按照这些步骤:

  1. 使用 fill() 用任意值(例如未定义)填充数组
  2. 使用map()方法创建一个新数组,其中包含所需对象类型的新实例:
var arr = new Array(2).fill().map(u => ({}));

此方法确保数组的每个元素都是一个独特的对象,与其他对象隔离:

arr[0].test = 'string';
console.log(arr[1].test); // undefined

以上是使用Array.prototype.fill()时如何确保对象唯一?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn