我想做的一個功能是在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' ;
希望可以幫你啦~