JavaScript对象无法正常工作

时间:2019-03-31 10:36:42

标签: javascript

我正在获取本地存储项,然后将其添加到对象中。问题是当我尝试得到它时,它只会给我一个结果,但应该是六个。

(
  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]);
});

3 个答案:

答案 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.maplocalStorage到新对象的项目映射到数组

在您的代码中,每次迭代都会覆盖它,最终您将创建最后一个对象。

const addUrl = (JSON.parse(localStorage.getItem("fav"))).map(({name, img}) => ({name, img}));
addUrl.forEach(obj => {
       console.log(...Object.values(obj));
});