如何解决将内部数组从地图合并为一个的干净方法是什么?
我目前有以下内容,是否有没有 forEach
的更简洁的方法?
今天是星期五,今天我的头都碎了:)
let productsObject = [{
id: 1,addons: [{
id: 1,group_id: 1
},{
id: 2,{
id: 3,group_id: 1
}]
},{
id: 2,group_id: 2
},group_id: 2
}]
}];
let addonsList = [];
productsObject.map(e => e.addons).forEach(e => {
addonsList = [...addonsList,...e];
});
console.log(addonsList);
解决方法
您可以将 Array.prototype.reduce()
用于单行解决方案:
let productsObject = [{
id: 1,addons: [{
id: 1,group_id: 1
},{
id: 2,{
id: 3,group_id: 1
}]
},{
id: 2,group_id: 2
},group_id: 2
}]
}];
const addonsList = productsObject.reduce((acc,{ addons }) => [...acc,...addons],[]);
console.log(addonsList);
另一个不错的选择是使用 flatMap。顾名思义,它是 flat 和 map 方法的组合。
let productsObject = [{
id: 1,group_id: 2
}]
}];
let addonsList = productsObject.flatMap(e => e.addons);
console.log(addonsList);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。