我创建一个数组并将其保存在本地存储中:
var myLikes = [];
myLikes[0] = {'slide':'1'}
localStorage.setItem("myCollection", JSON.stringify(myLikes));
然后我想将新数据添加到数组中。我正在尝试这样做:
var arrayLikes = localStorage.getItem('myCollection')
arrayLikes = [];
arrayLikes.push({'slide':'26'});
但我只得到数组的更新,即 删除先前的值。
如何正确地将新值添加到数组中?
当写入一个使用的值时
JSON.stringify()
,localStorage 被写入string
。因此,在读取时,需要进行反向转换:JSON(字符串)- 到对象(数组):
表单的表达式
localStorage.getItem('key') || '[]'
如下:如果 localStorage 中没有指定键的值,那么它将getItem()
返回null
- 并且由于null==false
,运算符||
将返回第二个(右)操作数 - 一个带有空数组的 json 字符串 ...这将成为论点parse()
。简单地说:如果值还没有写入localStorage,那么就会给变量赋值一个空数组。ps:这不能防止解析错误,以及读取和解析
try..catch
.