【问题标题】:What is the best way to create an array of objects in Javascript?在 Javascript 中创建对象数组的最佳方法是什么?
【发布时间】:2016-12-20 23:05:54
【问题描述】:

我知道在 Javascript 中,我可以创建这样的对象:

var cup = {};

此外,我可以这样设置属性:

cup.color = 'Blue';
cup.size = 'Large';
cup.type = 'Mug';

我可以创建一个杯子数组吗?例如:

cup[0].color = 'Blue';
cup[1].size = 'Large';
cup[2].type = 'Mug';

【问题讨论】:

  • 这将是一个对象数组。 var cups = [{color:'Blue',size:'Large',type:'Mug'},{color:'Red',size:'Small',type:'Glass'}]

标签: javascript arrays object


【解决方案1】:

创建一个数组就这么简单:

var cups = [];

你可以像这样创建一个填充数组:

var cups = [
    {
        color:'Blue'
    },
    {
        color:'Green'
    }
];

您可以像这样向数组中添加更多项目:

cups.push({
    color:"Red"
});

MDN array documentation

【讨论】:

  • 完美!正是我想要的。
  • "W3" 非常具有误导性,请参考语言规范或MDN 以获取示例和支持。
【解决方案2】:

简单地说。

cup[0].color = 'Blue';
cup[1].size = 'Large';
cup[2].type = 'Mug';

在 JS 中,这将导致作为嵌套对象,一个包含其他对象的对象

cup = {
    0: {
       color: 'Blue'
    },
    1: {
       size: 'Large'
    },
    2: {
       color: 'Mug'
    }
}

如果你想创建对象数组,你可以这样做......正如@wachkozaco 所说。

var cup = [{color:'Blue',size:'Large',type:'Mug'},{color:'Red',size:'S‌​mall',type:'Cup'}]

或者更直观

var cup = [];
var obj = {color: 'Red', size: 'small', type: 'Cup'};
cup[0] = obj; // also cup.push(obj);

【讨论】:

    【解决方案3】:

    数组应该是这样的……

    var cup = [];
    

    我们把属性放入数组后,会是这样的

    [
      {
        "color": "blue",
        "size": "large",
        "type": "mug"
      }
    ]
    

    你可以把这样的属性..

    var cup = [];
    
    cup.push({
    
       color : 'blue',
       size : 'large',
       type : 'mug'
    
    })
    
    console.log(cup);

    【讨论】:

      【解决方案4】:

      我看到的通常是这样的:

      var arr = []
      for (var n = 0; n < arr.length; n++) {
          arr[n] = {color: null, size: null, type: null}
      }
      

      但通常不需要这样的模式,你应该重新考虑你试图解决的问题。

      【讨论】:

        猜你喜欢
        • 2011-09-18
        • 1970-01-01
        • 2020-05-28
        • 1970-01-01
        • 2021-09-09
        • 2010-11-15
        • 2022-08-04
        • 2015-10-15
        • 2021-03-09
        相关资源
        最近更新 更多