在Javascript对象阵列中挣扎添加键

时间:2017-11-09 10:48:17

标签: javascript

我有这段代码:

var arrLiteData = [];
for(ii=0;ii<10;ii++)
{
  arrLiteData.push({ii:{"field1":100,"field2":ii}});
}

...但是,而不是ii取ii的增加数值,数组只保存实际的变量名,如下所示:

[{"ii":{"field1":100,"field2":0}},{"ii":{"field1":100,"field2":1}}...etc, etc...

我做错了什么?

非常感谢。

1 个答案:

答案 0 :(得分:0)

对于javascript对象键,引号是可选的,所以 {ii:{"field1":100,"field2":ii}}与...相同 {"ii":{"field1":100,"field2":ii}}甚至是 {ii:{field1:100,field2:ii}}。如果您有非字母数字字符,则只需要它们。

要解决此问题,您可以使用计算密钥,如果您正在转换代码或定位最近的导航器:

{[ii]:{"field1":100,"field2":ii}}

或者分两步构建对象:

var arrLiteData = [];
for(ii=0;ii<10;ii++)
{
  var obj = {};
  obj[ii] = {"field1":100,"field2":ii};
  arrLiteData.push(obj);
}