如何通过为其提供索引将值分配给 JSON..
看下面的代码,
var jsonVariable = [];
jsonVariable[10] = {1:10};
alert(jsonVariable.toSource());
对于上面的代码,输出是,
[,,,,,,,,,{1:10}]
我期望和我需要的输出是 [10 : {1:10}] 如何编写代码以按照我的预期输出......请帮我简要说明..
如何通过为其提供索引将值分配给 JSON..
看下面的代码,
var jsonVariable = [];
jsonVariable[10] = {1:10};
alert(jsonVariable.toSource());
对于上面的代码,输出是,
[,,,,,,,,,{1:10}]
我期望和我需要的输出是 [10 : {1:10}] 如何编写代码以按照我的预期输出......请帮我简要说明..
您使用了索引运算符 ( []
),它实例化 anew array
并将索引 10 处的元素设置为{1: 10}
。您实际上想使用花括号运算符 ( {}
) 来实例化 anew object
和广告属性10: {1:10}
,如下所示:
var jsonVariable = {};
jsonVariable[10] = {1:10};
alert(jsonVariable.toSource());
将成员设置为array
,您不能简单地跳过一些索引(从 10 开始)。将强制创建所有未连接的索引,直到您的索引。
当您指定一个尚不存在的数组索引时,[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}}
我想你需要的是:
var jsonVariable = [];
for(var i=0;i<10;i++){
var temp = {};
temp[i] = {'Property' : "Data"}
jsonVariable.push(temp);
}
console.log( JSON.stringify(jsonVariable));
试试这个:
var jsonVariable = [];
jsonVariable[10] = {1:10};
function isNotEmpty(element, index, array) {
return array[index];
};
jsonVariable = jsonVariable.filter(isNotEmpty);
alert(jsonVariable.toSource());