【问题标题】:Filling an array with the same object model [duplicate]用相同的对象模型填充数组[重复]
【发布时间】:2017-09-15 18:10:01
【问题描述】:

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

这很好用:

var rooms = new Array(10);

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

难道没有其他方法只需要一行代码就可以完成同样的事情吗?

我试过了:

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

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

谢谢。

【问题讨论】:

    标签: javascript arrays


    【解决方案1】:

    您应该使用map 方法来获得不同的对象。

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

    【讨论】:

      【解决方案2】:

      This 将在(自 ES6 起)中工作:

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

      【讨论】:

        【解决方案3】:

        另一个不错的方法是;

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-08-15
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-04-18
          • 2019-02-28
          • 2013-03-10
          • 1970-01-01
          相关资源
          最近更新 更多