如何使用Lodash将未知数量对象的value数组合并为单个对象?
实现方案
直接使用Lodash的_.flatMap方法即可完成需求,该方法会自动遍历所有接口返回的对象,提取每个对象的value数组并将所有元素合并为一个一维数组,无需提前知晓接口返回的对象数量。
代码示例
// 假设apiResponse是接口返回的原始数据 const apiResponse = [ { "value": [1,2,3/* 共1250项 */] }, { "value": [4,5,6/* 共1230项 */] } ]; // 合并逻辑 const mergedData = [ { value: _.flatMap(apiResponse, item => item.value) } ];
方法说明
_.flatMap首先会遍历输入的apiResponse数组的每一项- 对每一项执行回调函数,提取出
value字段对应的数组 - 自动将所有提取到的数组合并为一个一维数组,完全满足合并所有value元素的需求
如果后续有元素去重需求,可以额外搭配_.uniq方法使用:
value: _.uniq(_.flatMap(apiResponse, item => item.value))
内容的提问来源于stack exchange,提问作者CODEforDREAM
相关产品推荐
相关产品推荐

