我有这段代码:
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...
我做错了什么?
非常感谢。
答案 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);
}