动态创建javascript中的对象数组

时间:2013-11-15 09:35:04

标签: javascript

我是JavaScript的新手,我想创建一个以下结构的对象

var result = {
         0: {'key1' : value1,'key2' : value2 },
         1: {'key3' : value3, 'key4' : value4 },
}

有人请帮帮我。谢谢你提前

3 个答案:

答案 0 :(得分:8)

您的代码也有效,但它会创建一个对象。如果你想使用一个实际的数组,它可能是这样的:

var result = [
         {'key1' : value1, 'key2' : value2 },
         {'key3' : value3, 'key4' : value4 }
    ];

请注意外部括号从{}[]的更改以及顶级键的删除。

修改

要动态创建这样的数组,您可以使用以下内容:

var result = []; // init empty array

result.push( {'key1' : value1, 'key2' : value2 } ); // insert a value

for( var i=0; i<10; i++ ) {
  result.push( {'key1' : i, 'key2' : i } ); // insert some more values in a loop
}

答案 1 :(得分:4)

您发布的对象是JS地图对象

var result = {
         0: {'key1' : value1,'key2' : value2 },
         1: {'key3' : value3, 'key4' : value4 }
}

您可以像访问关联数组一样访问它。

result[0][key1]

或者这样

result[0].key1

如果您需要一个对象数组

  var result = [
  {'key1' : value1,'key2' : value2 },
  {'key3' : value3, 'key4' : value4 }
];

您可以像之前的示例一样访问它,在这种情况下,您不需要声明索引。

<强>更新

对于地图对象创建,您还可以使用@Sirko发布的循环。唯一的区别在于可以通过以下两种方式完成的值分配:

var result  = {};
result[0] = {'key1' : value1,'key2' : value2 };
result.myOtherObj = {'key1' : value1,'key2' : value2 };

地图内容与

相同
var result = {
  0: {'key1' : value1,'key2' : value2 },
  myOtherObj: {'key1' : value1,'key2' : value2 }
};

答案 2 :(得分:1)

如果您想动态创建它可能是一个解决方案:

var final_result = Array();
var element_1 = {"key1" : 2,"key2" : 3};
var element_2 = {"key3" : 2,"key4" : 3};

final_result.push(element_1);
final_result.push(element_2);