1

如何通过为其提供索引将值分配给 JSON..

看下面的代码,

var jsonVariable = [];
jsonVariable[10] = {1:10};
alert(jsonVariable.toSource());

对于上面的代码,输出是, [,,,,,,,,,{1:10}] 我期望和我需要的输出是 [10 : {1:10}] 如何编写代码以按照我的预期输出......请帮我简要说明..

4

4 回答 4

3

您使用了索引运算符 ( []),它实例化 anew array并将索引 10 处的元素设置为{1: 10}。您实际上想使用花括号运算符 ( {}) 来实例化 anew object和广告属性10: {1:10},如下所示:

var jsonVariable = {};
jsonVariable[10] = {1:10};
alert(jsonVariable.toSource());

将成员设置为array,您不能简单地跳过一些索引(从 10 开始)。将强制创建所有未连接的索引,直到您的索引。

于 2012-12-12T13:56:26.153 回答
2

当您指定一个尚不存在的数组索引时,[10]将创建所有以前未填充的索引。就.push()开吧。

var jsonVariable = [];
// A numeric property should be a string "1", though the browser will probably forgive you
// Just push the new object onto the array
jsonVariable.push({"1":10});
alert(JSON.stringify(jsonVariable));
// [{1:10}] exactly as you describe

如果您需要此特定对象{1:10}出现在jsonVariable[10],请将其设为对象{}而不是数组。

var jsonVariable = {};
jsonVariable["10"] = {"1": 10};
alert(JSON.stringify(jsonVariable));
// {"10":{"1":10}}
于 2012-12-12T13:55:21.497 回答
1

我想你需要的是:

var jsonVariable = [];
for(var i=0;i<10;i++){
    var temp = {};
    temp[i] = {'Property' : "Data"}
    jsonVariable.push(temp);
}
console.log( JSON.stringify(jsonVariable));  
于 2012-12-12T14:03:29.160 回答
0

试试这个:

var jsonVariable = []; 
jsonVariable[10] = {1:10};  
function isNotEmpty(element, index, array) {
  return array[index];
};
jsonVariable = jsonVariable.filter(isNotEmpty);

alert(jsonVariable.toSource());
于 2012-12-12T14:09:03.947 回答