我正在获取本地存储项,然后将其添加到对象中。问题是当我尝试得到它时,它只会给我一个结果,但应该是六个。
(
JSON.parse(localStorage.getItem("fav"))
).forEach(function (e) {
adUrl = {
"name": e.name,
"img": e.img,
}
});
Object.keys(adUrl).forEach(function (key){
console.log(adUrl[key]);
});
答案 0 :(得分:0)
是的。遍历fav
的所有内容,并每次覆盖adUrl
。 完成后,这部分
Object.keys(adUrl).forEach(function (key) {
console.log(adUrl[key]);
});
一次被执行 。
将其放入更大的forEach
循环中。
答案 1 :(得分:0)
只需确保在每次迭代中将对象添加到新数组中,就像这样:
let myArr = [];
(JSON.parse(localStorage.getItem("fav"))).forEach(function (e) {
adUrl= {
"name":e.name,
"img":e.img,
}
myArr.push(adUrl);
});
myArr.forEach(function (adUrl){
console.log(adUrl);
});
答案 2 :(得分:0)
使用Array.map
将localStorage
到新对象的项目映射到数组。
在您的代码中,每次迭代都会覆盖它,最终您将创建最后一个对象。
const addUrl = (JSON.parse(localStorage.getItem("fav"))).map(({name, img}) => ({name, img}));
addUrl.forEach(obj => {
console.log(...Object.values(obj));
});