首页 > 解决方案 > 循环遍历多个对象的所有键

问题描述

大家好,我有同样的问题,我不想在数组中添加循环对象,这是我的数组

const arrayDatas = [
  0: {id:234, name: eric},{id:235, name: thomas},{id:236, name: louvin},
  1: {id:230, name: jason},{id:233, name: lois},{id:238, name: serge},{id:237, name: natasha},{id:236, name: berthe}
]

所需的输出循环以添加每个键的所有 id arrayDatas

0: [234, 235, 236],
1: [230, 233, 238, 237, 236]

那不是我的尝试

products() {
      const details = Object.entries(arrayDatas);
      let detailsProducts = [];
      details.forEach(([key, val]) => {
        detailsProducts.push(val.id);
      });
      return detailsProducts;
    }

不工作请帮忙

标签: javascriptjquery

解决方案


arrayDatas.map(details => details.map(d => d.id))

工作示例:

const arrayDatas = [
  [{id:234, name: 'eric'},{id:235, name: 'thomas'},{id:236, name: 'louvin'}],
  [{id:230, name: 'jason'},{id:233, name: 'lois'},{id:238, name: 'serge'},{id:237, name: 'natasha'},{id:236, name: 'berthe'}]
];

console.log(arrayDatas.map(details => details.map(d => d.id)))

或者你也可以使用嵌套的 for 循环:

    const arrayDatas = [
      [{id:234, name: 'eric'},{id:235, name: 'thomas'},{id:236, name: 'louvin'}],
      [{id:230, name: 'jason'},{id:233, name: 'lois'},{id:238, name: 'serge'},{id:237, name: 'natasha'},{id:236, name: 'berthe'}]
    ];

    let result = [];
    for(let details of arrayDatas) {
        let currentDetails = []
        for(let d of details) {
            currentDetails.push(d.id);
        }
        result.push(currentDetails);
    }
    console.log(result);


推荐阅读