首頁  >  問答  >  主體

javascript - 如何向localStorage上的數組push數據

我想做的一個功能是在localstorage上設定一個空數組,每次點擊就push當前點擊的資料到localstorage的數組中,但是localstorage不允許push,我試過深拷貝localstorage的數組出來再push到深拷貝的數組中,在設定localstorage的數組為深拷貝的數組,但是也沒嘗試出來,請大神支招

伊谢尔伦伊谢尔伦2677 天前1210

全部回覆(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
  • 取消回覆