gpt4 book ai didi

javascript - 如何编写一个函数,它创建一个特定长度的对象数组?对象具有自定义生成的数据

转载 作者:行者123 更新时间:2023-12-04 09:43:21 34 4
gpt4 key购买 nike

我有一个随机生成数据的对象:

var obj = {
price: getRandomNumberRange(10, 200),
rooms: getRandomNumberRange(1, 5)
};

在哪里
var getRandomNumberRange = function (min, max) {
return Math.floor(Math.random() * (max - min) + min);
};

我一直在尝试编写一个函数,但未能成功,该函数将允许创建一个包含 4 个对象的数组,因此每个对象的数据将在创建时重新生成。我的功能:
var createArr = function () {
var arr = [];
for (var i = 0; i < 5; i++) {
arr.push(obj);
}
return arr;
};

换句话说,我希望得到这种数组:
var arr = [{price:40, rooms:2}, {price:23, rooms:4}, {price:99, rooms:2}, {price:191, rooms:3}];

但我不断得到这个:
var arr = [{price:40, rooms:2}, {price:40, rooms:2}, {price:40, rooms:2}, {price:40, rooms:2}];

将感谢您的帮助!

更新。感谢所有提出更复杂的方法来解决我的问题的人。一旦我在 JS 中取得进展,我会再次重新检查这个线程!

最佳答案

看起来您重复使用对象来一遍又一遍地推送,并且由于同一个对象,它使用最新值推送相同的对象引用。

为了克服这个问题,您需要为每个循环创建一个新对象并使用 short hand properties 分配随机值。 .

// inside the loop

let price = getRandomNumberRange(10, 200),
rooms = getRandomNumberRange(1, 5);

array.push({ price, rooms }); // short hand properties

关于javascript - 如何编写一个函数,它创建一个特定长度的对象数组?对象具有自定义生成的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62233565/

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