搜索

首页  >  问答  >  正文

javascript - 如何向localStorage上的数组push数据

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

伊谢尔伦伊谢尔伦2747 天前1288

全部回复(5)我来回复

  • 世界只因有你

    世界只因有你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]);
    }

    回复
    0
  • 学习ing

    学习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))

    回复
    0
  • 我想大声告诉你

    我想大声告诉你2017-06-20 10:09:01

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

    回复
    0
  • ringa_lee

    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"

    回复
    0
  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-06-20 10:09:01

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

    localstorage["key"] = 'value' ;

    希望可以帮到你啦~

    回复
    0
  • 取消回复