我正在创建一个数组并使用fill
方法填充它,但更改array1[0].foo
会更改数组中的所有对象。
const array1 = Array(2).fill({ foo: null })
array1[0].foo = 'bar' // [ { foo: 'bar' }, { foo: 'bar' } ]
对于每个索引,是否有办法将fill
与同一对象的不同副本一起使用?
答案 0 :(得分:1)
它不适用于Array#fill
,因为它使用常量值。
您可以使用Array.from
并映射对象。
const array = Array.from({ length: 2 }, _ => ({ foo: null }));
array[0].foo = 'bar';
console.log(array);