使用相同的对象模型填充数组

时间:2017-04-19 13:20:14

标签: javascript arrays

我正在尝试使用相同的对象类型(房间)填充数组(房间)。

这很好用:

var rooms = new Array(10);

for (var i=0; i<10; i++){
  rooms[i] = new room();
}

是否还有其他方法只需要一行代码来执行相同的操作?

我试过了:

var rooms = new Array(10).fill(new room());

但是数组的每个框都包含相同的对象(相同的引用)。

感谢。

3 个答案:

答案 0 :(得分:1)

您应该使用map方法来拥有不同的对象。

var rooms = new Array(10).fill().map(function(){
   return new room();
});

答案 1 :(得分:1)

This将起作用(自ES6起):

Array(10).fill().map((e,i)=>new room());

答案 2 :(得分:1)

这样做的另一个好方法是:

var rooms = Array.from({length:10}, _ => new Room());
rooms[0] === rooms[1] // <- false