我想做的一个功能是向localstorage上设置一个空数组,每次点击就push当前点击的数据到localstorage的数组中,但是localstorage不允许push,我试过深拷贝localstorage的数组出来再push到深拷贝的数组中,在设置localstorage的数组为深拷贝的数组,但是也没尝试出来,请大神支招
世界只因有你2017-06-20 10:09:01
localStorage只能存储String,要用Json对象转化下:
var arrayObject = [];
arrayObject.push('a','b','c');
localStorage.setItem("array",JSON.stringify(arrayObject));
var arrayObjectLocal = JSON.parse(localStorage.getItem("array"));
arrayObjectLocal.push('d','e','f');
for (i = 0; i < arrayObjectLocal.length; i++) {
console.log(arrayObjectLocal[i]);
}
学习ing2017-06-20 10:09:01
很简单,存进去之前先json字符串化,取出来逆回来操作,就能得到正常的数组。
localStorage.setItem("arr", JSON.stringify(arr))
var arr = JSON.parse(localStorage.getItem("arr"))
arr.push(something)
localStorage.setItem("arr", JSON.stringify(arr))
我想大声告诉你2017-06-20 10:09:01
很奇怪的思维,为啥不往数组里push,在localStorage.setItem("arr",arr)呢,而是在先设置localStorage,在进行操作呢
ringa_lee2017-06-20 10:09:01
数组存localstorage里会变成字符串,
想操作localStorage的变量就先取出来进行操作再存进去。
//设置
arr = [1];
localStorage.arr = arr
取出来再设置
//取出
getarr = localStorage.arr.split(',')
//操作
getarr.push(2)//["1", 2]
//再存
localStorage.arr = getarr//这时候localStorage.arr变为 "1,2"
曾经蜡笔没有小新2017-06-20 10:09:01
亲,首先你要搞清楚localstorage到底是个什么东西,
localstorage作为HTML5新特性中的webStorage技术中的永久存储方法,我们通常也叫他本地存储和跨会话级存储。
他的用法并不需要给localstorage设置空数组,他本身有自己的存取数据的方法,如下:
localstorage["key"] = 'value' ;
希望可以帮到你啦~