1

嗨,我不确定将新元素推送到关联对象数组有什么问题

var storeData3 = [  
{ 'key1' : 'value1' },  
{ 'key2' : 'value2' },  
{ 'key3' : 'value3' },  
{ 'key6' : null},  
{ 'key7' : ''},  
{ 'key8' : ""},  
{ 'key9' : null},  
{ 'key10' : 'value4'}
]; //as JSON object

var i=0;

storeData3=JSON.stringify(storeData3, function(key, value)
{if(!value)
{
    i++;

};

return value;
});

JSON.parse(storeData3);

function insert(name, number) 
{
    storeData3.push({name: number});        
}

if(i>0) insert('keyX','null');

错误显示“TypeError:storeData3.push 不是函数”。

4

3 回答 3

1

您正在调用一个字符串的push方法。storeData3

线

storeData3=JSON.stringify(storeData3, function(key, value) ...

用字符串 JSON 表示覆盖变量。

你所要做的

storeData3 = JSON.parse(storeData3);

或使用另一个变量。

于 2013-05-17T09:08:08.663 回答
1

您可能希望将解析后的 JSON 存储回storeData3

JSON.parse(storeData3);

应该

storeData3 = JSON.parse(storeData3);
于 2013-05-17T09:08:53.753 回答
1

您需要将 JSON.parse 函数返回到数组中storeData = JSON.parse(storeData3);

于 2013-05-17T09:08:55.073 回答