javascript - 如何向localStorage上的数组push数据
伊谢尔伦
伊谢尔伦 2017-06-20 10:07:01
0
5
1283

我想做的一个功能是向localstorage上设置一个空数组,每次点击就push当前点击的数据到localstorage的数组中,但是localstorage不允许push,我试过深拷贝localstorage的数组出来再push到深拷贝的数组中,在设置localstorage的数组为深拷贝的数组,但是也没尝试出来,请大神支招

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全部回复(5)
世界只因有你

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]);
}
学习ing

很简单,存进去之前先json字符串化,取出来逆回来操作,就能得到正常的数组。

localStorage.setItem("arr", JSON.stringify(arr))
var arr = JSON.parse(localStorage.getItem("arr"))
arr.push(something)
localStorage.setItem("arr", JSON.stringify(arr))
我想大声告诉你

很奇怪的思维,为啥不往数组里push,在localStorage.setItem("arr",arr)呢,而是在先设置localStorage,在进行操作呢

ringa_lee

数组存localstorage里会变成字符串,
想操作localStorage的变量就先取出来进行操作再存进去。

//设置
arr = [1];
localStorage.arr = arr

取出来再设置

//取出
getarr = localStorage.arr.split(',')
//操作
getarr.push(2)//["1", 2]
//再存
localStorage.arr = getarr//这时候localStorage.arr变为 "1,2"
曾经蜡笔没有小新

亲,首先你要搞清楚localstorage到底是个什么东西,
localstorage作为HTML5新特性中的webStorage技术中的永久存储方法,我们通常也叫他本地存储和跨会话级存储。
他的用法并不需要给localstorage设置空数组,他本身有自己的存取数据的方法,如下:

localstorage["key"] = 'value' ;

希望可以帮到你啦~

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板