我希望将newUsername
的值添加到localStorage
setUsernamesArray ,而在我的代码中,它会替换整个值。
$('#signUpButton').click(function() {
var newUsername = $('#usernameSignInBox').val();
signedUpUsernames.push(newUsername);
localStorage.setItem('setUsernamesArray', signedUpUsernames);
});
答案 0 :(得分:2)
localStorage
始终将值存储为string
,因此stringify
array
存储,
localStorage.setItem('setUsernamesArray', JSON.stringify(signedUpUsernames));
在阅读之前只需parse
,
var arrayFrmStorage = JSON.parse(localStorage.getItem("setUsernamesArray"))
答案 1 :(得分:2)
如果要添加到数组中,您必须意识到localStorage中的值不是数组,而是字符串。如果您希望该字符串表示一个数组,并且您想要更新该数组,则必须执行以下操作:
localStorage.getItem('setUsernamesArray')
,JSON.parse
,localStorage.setItem('setUsernamesArray', JSON.stringify(array))
答案 2 :(得分:2)
localStorage.setItem
将替换localStorage中键的值。
将localStorage视为变量。当你做的时候
var a = "Hello";
a = " World"
a
的值被替换。为避免这种情况,我们使用+=
var a = "Hello";
a += " World"
类似地,您必须创建具有更新值的另一个对象并将其写入localStorage。
以下是一个例子。
function setValueToLS(key, prop, value){
var _local = {};
if(localStorage.getItem(key))
_local = JSON.parse(localStorage.getItem(key));
_local[prop] = value;
localStorage.setItem(key, JSON.stringify(_local));
}