我想遍历每个键并从每个键中获取name
值。这就是我的本地存储的样子。
key:3值:{“name”:“Kevin”,“country”:“加拿大”,“about”:“Test”,“image”:“"}
key:4值:{“name”:“Homer”,“country”:“加拿大”,“about”:“Test”,“image”:“"}
我想得到这两个名字并把它们添加到数组中。我尝试了这个方法:
for(var key in localStorage){
let user = JSON.parse(localStorage.getItem(key));
this.users.push(user);
}
我得到的错误是:
语法错误:JSON中位置1处的意外标记e
8条答案
按热度按时间lxkprmvk1#
fae0ux8s2#
当你说I want to getboth of these names时,我不明白,但无论哪种方式,你都可以这样做:
b4qexyjb3#
这是对Robert's answer的改进。
只需枚举
localStorage
中具有字符串name
属性的所有值(键本身无关紧要)。然后返回该数组。根据您自己的答案,您可能会遇到不一致的可变状态,因为将临时变量移动到示例作用域不会影响您的情况。
hs1rzwqc4#
你可以考虑使用我的库
ngx-store
来处理localStorage,sessionStorage,cookie和更多的Angular。为了实现你想要的,你将能够在存储中存储整个数组,或者只是使用像下面这样的代码与你当前的数据结构:真的,就可以这么简单;)
qzlgjiam5#
你可以使用方法
hasOwnProperty('propertyName')
来检查对象中的name是否可用。然后执行所需的操作。d4so4syb6#
使用spread运算符获取所有localstorage作为新对象
vhipe2zx7#
huwehgph8#
我设法解决了这个问题,这是一个简单的错误,总是在循环中初始化一个新的
let user
。我移走了
user
,其余的代码可以工作。