我正在尝试使用相同的对象类型(房间)填充数组(房间)。
这很好用:
var rooms = new Array(10);
for (var i=0; i<10; i++){
rooms[i] = new room();
}
是否还有其他方法只需要一行代码来执行相同的操作?
我试过了:
var rooms = new Array(10).fill(new room());
但是数组的每个框都包含相同的对象(相同的引用)。
感谢。
答案 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