【问题标题】:Array.prototype.fill({}) references [duplicate]Array.prototype.fill({}) 引用 [重复]
【发布时间】:2020-06-18 23:41:46
【问题描述】:

有人可以解释一下这段代码是如何工作的吗:

let arr = Array(3).fill({}) // [{}, {}, {}]
arr[0].hi = "hi"            // [{ hi: "hi" }, { hi: "hi" }, { hi: "hi" }]

为什么引用所有元素?我如何只引用第一个?

【问题讨论】:

  • 每个数组元素都指向同一个对象。
  • 完美,谢谢@ElAoutarHamza
  • 您可以引用第一个元素而不引用其余元素,方法是复制它的值,将值设置为其他值并重新插入,如下所示:let f = arr[0]; f={hi: "hi"}; arr[0] = first;

标签: javascript arrays object reference


【解决方案1】:

你正在用一个对象的相同引用填充数组中的每个位置,它与

let a = {};
const b = a;
a.hi = 'hi';
console.log(b);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-05
    • 1970-01-01
    • 1970-01-01
    • 2021-12-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多