【发布时间】:2020-02-20 07:11:31
【问题描述】:
在打字稿中,我试图为数组中每个对象的属性分配一个随机数。我试过下面的代码
uniqueItems.forEach(unique => {
unique.humanCode = Math.floor(1000 + Math.random() * 9000).toString();
});
如果我在 forEach 循环内进行 console.log,我会得到一个不同的数字,但是当我 console.log 在 forEach 之后的对象数组时,所有随机数都是相同的。
编辑:我最初通过使用
创建了我的对象数组for (let i = 0; i < this.quantity; i++) {
this.uniqueItems.push(uniqueItem);
}
这产生了一个相同对象的数组。这意味着我的数组被分配了最后一个随机数。我在创建数组时使用扩展运算符解决了这个问题。
for (let i = 0; i < this.quantity; i++) {
this.uniqueItems.push({ ...this.uniqueItem });
}
【问题讨论】:
-
什么对象数组?
-
听起来你有一个对象数组,它们都是同一个对象
-
Kryten 是对的。
uniqueItems不是唯一的项目。展示你如何生产你的阵列。您可能多次将同一个对象添加到数组中,而不是创建新对象。 -
你用 console.log 打印什么,unique 或 unique.humanCode ?
标签: javascript typescript