javascript - 在运行时创建对象?

标签 javascript json

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

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

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

最佳答案

首先: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)
    });
}

或者使用 constructor function :

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

关于javascript - 在运行时创建对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17771630/

相关文章:

javascript - JSON.parse 给出了一个 "undefined"对象

javascript - 具有共享路由器上下文的多个 ReactDOM.render 调用

javascript - 比较选择框时序

javascript - 如何使用jquery或javascript滚动div内容?

ios - JSONModel:MKAnnotation & CLLocationCoordinate2D

javascript - 从 PHP 中的 URL 获取 json

javascript - 为什么可以从 JS-ScriptEngine eval(String) 执行 Java 代码?

javascript - 如何在单击按钮时显示 div?

javascript - 将 JSON 项插入现有数组 angularjs

c# - 如何获取 webapi 对象列表?