首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何根据数组遍历数据?

如何根据数组遍历数据?
EN

Stack Overflow用户
提问于 2019-06-24 20:36:47
回答 5查看 213关注 0票数 0

我尝试根据show数组遍历数据,并打印数据以查看其是否正确。遍历与show数组对应的list数组,如下所示

我想要的效果如下:

代码语言:javascript
复制
[
  {
   "name": "A",
   "age": "10",
  },
  {
   "name": "B",
   "age": "20",
  }
]

代码语言:javascript
复制
const data = [{
  "code": "200",
  "msg": "success",
  "data": {
    "list": [{
      "name": "A",
      "age": "10",
      "logo": "aa.png",
      "note": "aa"
    }, {
      "name": "B",
      "age": "20",
      "logo": "bb.png",
      "note": "bb"
    }],
    "show": [
      "name",
      "age"
    ]
  }
}]



function init() {
  data.map(res => {
    if (res.code == 200) {
      console.log(res.data.list)
    }

  })
}
init();

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2019-06-24 20:46:16

通过迭代show (而不是硬编码nameage),如果您更改模板的结构,此代码也可以工作:

代码语言:javascript
复制
const data = [{
  "code": "200",
  "msg": "success",
  "data": {
    "list": [{
      "name": "A",
      "age": "10",
      "logo": "aa.png",
      "note": "aa"
    }, {
      "name": "B",
      "age": "20",
      "logo": "bb.png",
      "note": "bb"
    }],
    "show": [
      "name",
      "age"
    ]
  }
}];

var ans = data[0].data.list.map(item => {
  var curr = {};
  data[0].data.show.forEach(prop => {
    curr[prop] = item[prop];
  });
  return curr;
});

console.log(ans);

票数 4
EN

Stack Overflow用户

发布于 2019-06-24 21:04:54

您可以以一种更简单的方式使用reduce

代码语言:javascript
复制
const data = [
  {
    code: "200",
    msg: "success",
    data: {
      list: [
        {
          name: "A",
          age: "10",
          logo: "aa.png",
          note: "aa"
        },
        {
          name: "B",
          age: "20",
          logo: "bb.png",
          note: "bb"
        }
      ],
      show: ["name", "age"]
    }
  }
];

console.log(data[0].data.list.map(x =>
  data[0].data.show.reduce((p, c) => ((p[c] = x[c]), p), {})
));

票数 2
EN

Stack Overflow用户

发布于 2019-06-24 20:50:11

代码语言:javascript
复制
const data = [{
  "code": "200",
  "msg": "success",
  "data": {
    "list": [{
      "name": "A",
      "age": "10",
      "logo": "aa.png",
      "note": "aa"
    }, {
      "name": "B",
      "age": "20",
      "logo": "bb.png",
      "note": "bb"
    }],
    "show": [
      "name",
      "age"
    ]
  }
}];

function init() {
  data.map(res => {
    if (res.code == 200) {
      console.log(res.data.list.map(function(listValue) {
        var ret = {};
        res.data.show.forEach(function(idx) {
          ret[idx] = listValue[idx]
        });
        return ret;
      }));
    }

  })
}
init();

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56736766

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档