我可以预先分配对象数组吗?

时间:2014-05-09 11:10:31

标签: javascript

如何创建预分配的' Myobject' ??? 我知道你可以这样做:

var a = new array(100);

现在你只能这样做:

var a = new array();
a.push (new Myobject()); (100 times)

我想做:

var a = new array(Mobject,100)  

(或类似的东西) 可能吗 ? 会有效吗? TH。

3 个答案:

答案 0 :(得分:2)

以下是如何使用Array函数创建已填充的数组:

var a = Array.apply(0,Array(100)).map(function() { return new Myobject() });

请注意:

  • 它并不比简单的for循环
  • 更清晰
  • 它不会更快*

2018年编辑:现在更简单:

var a = Array(100).fill().map(()=>new Myobject);

答案 1 :(得分:0)

试试这个。它使用隐式循环,你需要为旧版浏览器填充它,但我认为它有点酷:

<德尔> var a = new Array(100).map(function() {return new Myobject();});

编辑:或者如果它起作用会很酷= /没关系。

for( var a=[], i=0; i<100; i++) a[i] = new Myobject();

答案 2 :(得分:0)

这是一个使用简单循环的可重用函数,不依赖于map可用性:

function createPrefilled(obj, len) {
    var a = [];
    for(var i = 0; i < len; i++) {
        a.push(new obj());
    }
    return a;
}

使用示例:

var a = createPrefilled(Mobject, 100);

<强> Demo here