在下面的代码中,我有一个包含两个JSON对象的数组,但是如果我需要20个对象,我是否必须在数组中编写20次,或者是否有更好的方法在运行时创建20个对象在创建它们时为它们添加一些随机值?
我知道Javascript的局限性与Java或C#等真正的OOP语言相比,我可以从一个类创建对象,然后将它们添加到列表中。
var numbers = [
{
"x": 100,
"y": 100,
"visible": true,
"value": 23
},
{
"x": 150,
"y": 100,
"visible": true,
"value": 19
},
];
答案 0 :(得分:2)
首先:JavaScript 是一种真正的OO语言。第二:JS有一种机制,允许您从构造函数创建对象,或者您可以在循环中使用对象文字。第三:你拥有的不是JSON; there's no such thing as a JSON object
话虽如此,这是你正在谈论的一种方式:
function getRandomInt(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}
var numbers = [];
for (var i=0; i < 20; i++) {
numbers.push({
"x": getRandomInt(0, 200),
"y": getRandomInt(0, 200),
"visible": true,
"value": getRandomInt(0, 50)
});
}
function MyObject() {
this.x = getRandomInt(0, 200);
this.y = getRandomInt(0, 200);
this.visible = true;
this.value = getRandomInt(0, 50);
}
var numbers = [];
for (var i=0; i < 20; i++)
numbers.push(new MyObject());
答案 1 :(得分:0)
var numbers = [];
for(var i = 0; i < 20; ++i) {
numbers.push({
x: Math.random(),
y: Math.random(),
visible: Math.round(Math.random() * 10) / 10) % 2 == 0,
value: Math.random()
});
}