使用数组和映射创建x对象

时间:2014-10-08 20:12:46

标签: javascript for-loop

我想以功能方式创建10个Fly个对象。我认为这样可行:

var flies = new Array(10).map(function() {
    return new Fly();
});

没有。它创建一个长度为10的数组,其值为undefined

如何在不使用for(var i = 0; i < 10; i++)...的情况下创建10个对象?

编辑:这只是为了学习而进行的学术练习。如果在引擎盖下使用for,则会发现它。我只想弄清楚JavaScript可以做什么。

2 个答案:

答案 0 :(得分:2)

开箱即用,只有@elcanrs方式。 如果您使用诸如Underscore之类的库,则可以使用http://underscorejs.org/#times

var flies = _.times(10, function(){return new Fly()})

答案 1 :(得分:1)

我非常确定任何花哨的方法都会在较低级别使用for或其他循环...如果你真的想要摆脱这样,您可以使用递归方法并创建自己的Fly Factory功能!

老实说,IMO是浪费精力。但至少它没有循环! = d

&#13;
&#13;
function Fly() {
}

function CreateFlies(n) {
    var arr = [new Fly()];
    arr = (n > 1 ? arr.concat(CreateFlies(n-1)) : arr);
    return arr;
}
var flies = CreateFlies(10);
alert(flies);
&#13;
&#13;
&#13;