1

在下面的代码中,我有一个包含两个 JSON 对象的数组,但是如果我需要 20 个对象,我必须在数组中写入 20 次还是有更好的方法在运行时创建 20 个对象并添加一些随机创造它们时对它们的价值?

与 Java 或 C# 等真正的 OOP 语言相比,我知道 Javascript 的局限性,在这些语言中,我可以从一个类创建对象并将它们添加到列表中。

var numbers = [
    {
    "x": 100,
    "y": 100,
    "visible": true,
    "value": 23
    },
    {
    "x": 150,
    "y": 100,
    "visible": true,
    "value": 19
    },
    ];
4

2 回答 2

2

第一:JavaScript一种真正的 OO 语言。第二:JS 有一种机制可以让你从构造函数创建对象,或者你可以只在循环中使用对象字面量。第三:你所拥有的不是 JSON;没有 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());
于 2013-07-21T11:07:16.867 回答
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()
    });
}
于 2013-07-21T11:07:38.037 回答