首页 > 解决方案 > 将内部数组从地图合并为一个的干净方法是什么?

问题描述

我目前有以下内容,有没有更简洁的方法可以做到这一点forEach

今天是星期五,今天我的脑袋已经糊涂了:)

let productsObject = [{
  id: 1,
  addons: [{
    id: 1,
    group_id: 1
  }, {
    id: 2,
    group_id: 1
  }, {
    id: 3,
    group_id: 1
  }]
}, {
  id: 2,
  addons: [{
    id: 1,
    group_id: 2
  }, {
    id: 3,
    group_id: 2
  }]
}];

let addonsList = [];

productsObject.map(e => e.addons).forEach(e => { 
  addonsList = [...addonsList, ...e];
});

console.log(addonsList);

标签: javascriptdictionaryforeach

解决方案


另一个不错的选择是使用flatMap。顾名思义,这是flatmap方法的组合。

let productsObject = [{
  id: 1,
  addons: [{
    id: 1,
    group_id: 1
  }, {
    id: 2,
    group_id: 1
  }, {
    id: 3,
    group_id: 1
  }]
}, {
  id: 2,
  addons: [{
    id: 1,
    group_id: 2
  }, {
    id: 3,
    group_id: 2
  }]
}];

let addonsList = productsObject.flatMap(e => e.addons);

console.log(addonsList);


推荐阅读