我用以下函数初始化了一个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:Object []没有 方法'推'
我在Ubuntu上使用Google Chrome 10.0.648.151。
有谁知道我可能做错了什么?
感谢。
答案 0 :(得分:0)
本质上,JSON对象不是数组,push方法仅适用于javascript中的数组。您是否有理由不使用对象文字方法将数组数据添加到JSON对象?
e.g。
statistics.variable = one_stat;
答案 1 :(得分:0)
我尝试了以下代码,它按预期工作:
<!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>
它似乎与Prototype库有关,我正在使用它。看看这个:JSON.stringify() array bizarreness with Prototype.js
我还没有找到解决办法,但我相信我走的是正确的道路。