Javascript 将元素推入新的关联对象数组中

Javascript 将元素推入新的关联对象数组中,javascript,json,Javascript,Json,嗨,我不确定将新元素推到对象的关联数组有什么问题 var storeData3 = [ { 'key1' : 'value1' }, { 'key2' : 'value2' }, { 'key3' : 'value3' }, { 'key6' : null}, { 'key7' : ''}, { 'key8' : ""}, { 'key9' : null}, { 'key10' : 'value4'} ]; //as JSON object var i=0;

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

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不是函数”。

您正在调用
storeData3
上的
push
方法,该方法是一个字符串

线路

storeData3=JSON.stringify(storeData3, function(key, value) ...
使用字符串JSON表示形式覆盖变量

你必须这样做

storeData3 = JSON.parse(storeData3);

或者使用另一个变量。

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

JSON.parse(storeData3);
应该是

storeData3 = JSON.parse(storeData3);

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

当您执行
storeData3=JSON.stringify(storeData3,函数(键,值)
storeData3
时,它会变成一个字符串。因为没有storeData3.push()函数
JSON.parse(storeData3);
返回解析后的值,但您没有对它做任何操作。@Atle,它有;
.stringify
返回一个字符串,
JSON.parse
返回实际结构,即数组。您不能
。将
推到字符串中。我知道,但我认为在看到错误后,错误消息不会解释太多。“storeData3没有方法‘push’”将解释更多。