gpt4 book ai didi

javascript - forEach循环分配相同的随机数

转载 作者:行者123 更新时间:2023-12-01 00:08:04 27 4
gpt4 key购买 nike

在 typescript 中,我试图为数组中每个对象的属性分配一个随机数。我尝试过以下代码

uniqueItems.forEach(unique => {
unique.humanCode = Math.floor(1000 + Math.random() * 9000).toString();
});

如果我在 forEach 循环内进行 console.log,我会得到一个不同的数字,但是当我在 forEach 之后 console.log 对象数组时,所有随机数都是相同的。

编辑:我最初使用创建对象数组

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 });
}

最佳答案

您可以使用 map 迭代您的项目并为数组中的每个项目返回一个新对象。这也将确保您不会通过引用更新对象。您应该阅读有关 JavaScript 中的可变性的内容。这是JS中的一个重要概念

uniqueItems.map(unique => ({
...unique,
humanCode: Math.floor(1000 + Math.random() * 9000).toString(),
}));

关于javascript - forEach循环分配相同的随机数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60232877/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com