如何给数组中的特定对象属性赋值?

How to assign a value to a specific object property in Array?

我有一个包含如下对象的数组:

[{Date: null, Dossie1: null}, {Date: null, Dossie1: null}, {Date: null, Dossie1: null}]

我需要为每个特定对象分配一个值属性。

  let dataset = Array(dates.length).fill(objectTemplate)
  for (let i=0; i<dates.length; i++) {
    dataset[i].Date = dates[i]
  }

但问题是当我这样做的时候。 每个对象都分配有最后一个项目。 例如,如果 dates 有 3 个值 [1,2,3]。 数组 dataset 中的 属性 将分配给 3 而不是 1,2,3

您可以使用 returns 模板副本(通过使用扩展运算符)的回调填充数组。

Array.from({ length: dates.length }, () => ({ ...objectTemplate }))

const
  dates = [
    { Date: null, Dossie1: null },
    { Date: null, Dossie2: null },
    { Date: null, Dossie3: null },
  ],
  objectTemplate = { Date: null },
  dataset = Array.from({ length: dates.length }, () => ({ ...objectTemplate }));

for (let i = 0; i < dates.length; i++) {
  dataset[i].Date = dates[i];
}

console.log(dataset);
.as-console-wrapper { top: 0; max-height: 100% !important; }