带有localStorage的空数组上的javascript JSON.parse结果问题

带有localStorage的空数组上的javascript JSON.parse结果问题,javascript,json,Javascript,Json,我使用以下函数初始化了localStorage变量: if (!localStorage["store"]) { var aaa = new Array(); localStorage["store"] = JSON.stringify(aaa); } 它似乎工作正常,但当我尝试使用该数组来添加具有以下代码的元素时: var one_stat = new Array( s1, s2 , resultat ); var statistic

我使用以下函数初始化了localStorage变量:

    if (!localStorage["store"]) {
       var aaa = new Array();
       localStorage["store"] = JSON.stringify(aaa);
    }   
它似乎工作正常,但当我尝试使用该数组来添加具有以下代码的元素时:

  var one_stat = new Array( s1, s2 , resultat );
  var statistics = JSON.parse(localStorage["store"]);
  statistics.push( one_stat );
  localStorage["store"] = JSON.stringify(statistics);
我得到以下错误:

未捕获的TypeError:对象[]没有 方法“推”

我在Ubuntu上使用Google Chrome 10.0.648.151

有人知道我可能做错了什么吗


谢谢。

本质上,JSON对象不是数组,推送方法只适用于javascript中的数组。有没有理由不使用object literal方法将数组数据添加到JSON对象中

e、 g


我尝试了以下代码,并按预期工作:

<!DOCTYPE html>         
<html>                  
<head>
<title>Prova</title>    
</head>                 
<body>
<script type="text/javascript"> 
        if (!localStorage["stor"] ) {

                localStorage["stor"] = JSON.stringify([]);
        }               

        var aa = JSON.parse( localStorage["stor"] ) ;
        console.log( aa ) ;
        aa.push( [ 1 , 2, 2 ] ) ;
        localStorage["stor"] = JSON.stringify( aa ) ;
</script>
I am trying, man
</body>
</html> 

普罗瓦
如果(!localStorage[“stor”]){
localStorage[“stor”]=JSON.stringify([]);
}               
var aa=JSON.parse(localStorage[“stor”]);
控制台日志(aa);
aa.推送([1,2,2]);
localStorage[“stor”]=JSON.stringify(aa);
我在努力,伙计
它似乎与我正在使用的原型库有关。看看这个:


我仍然没有找到解决方案,但我相信我走的是正确的道路。

可能的repost console.log(localStorage.store);我的猜测是您将localStorage.store初始化为数组以外的内容,现在它已设置,您的代码不会将其重置为空数组,因为您的if语句将评估false
alert(localStorage[“store”])
的输出是什么?另外,如果您只是在处理空阵列时遇到问题,您是否尝试过简单地
localStorage[“store”]=“[]”
?他在localStorage阵列中拥有什么并不重要。。。他试图将文本放入一个对象中,并使用array push方法向他的JSON对象添加额外的数据。对象没有推送方法。它将失败,句号。
console.log(localStorage[“store”])
output是
“[”
对不起,我不明白。我不能将任何内容(例如数组)直接保存到localStorage[“store”]?我的意思是,JSON.parse不应该返回我的空数组吗?JavaScript数组和对象有不同的方法。您正在使用的一个方法--“push”--不适用于JSON对象,因为对象没有push方法。相反,数组确实有一个push方法。parse返回一个JSON对象,而不是数组。更多信息可以在那里找到。你到底想完成什么?看起来您想将统计数据保存到localStorage['store']中的数组中。如果您只需要一个阵列存储容器,那么为什么要使用JSON.parse呢。我很感激你的回答,但它们不能解决我的问题。我需要知道如何将阵列存储到localStorage中,以便以后使用“推送”功能。我知道我可以使用对象,但我确信一定有一种方法可以将空数组或整个n维数组存储到localStorage中,并将其恢复到以前的状态。我会很感激你的帮助,解决了它。这是与原型1.6.x的已知冲突。我更新到原型1.7,解决了ii tot。更多信息请点击这里:[谢谢@Lance@Aleadam和@OriginalSyn的帮助
<!DOCTYPE html>         
<html>                  
<head>
<title>Prova</title>    
</head>                 
<body>
<script type="text/javascript"> 
        if (!localStorage["stor"] ) {

                localStorage["stor"] = JSON.stringify([]);
        }               

        var aa = JSON.parse( localStorage["stor"] ) ;
        console.log( aa ) ;
        aa.push( [ 1 , 2, 2 ] ) ;
        localStorage["stor"] = JSON.stringify( aa ) ;
</script>
I am trying, man
</body>
</html>