0

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

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

有人请帮帮我。在此先感谢

4

3 回答 3

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
}
于 2013-11-15T09:37:50.693 回答
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 }
};
于 2013-11-15T09:43:43.197 回答
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);
于 2013-11-15T09:46:01.883 回答