如何编写JS函数将对象数组按state属性分组转换为指定结构?
实现方案
你可以直接使用JavaScript的Array.reduce方法完成分组,代码如下:
const groupByState = (input) => { return input.reduce((result, item) => { const { state, insurance } = item // 若当前state不存在于结果中,先初始化结构 if (!result[state]) { result[state] = { state, insurances: [] } } // 追加当前insurance到对应数组 result[state].insurances.push(insurance) return result }, {}) } // 调用示例 const outputStructure = groupByState(inputStructure)
逻辑说明
- 以空对象作为
reduce的初始累加值,遍历输入数组的每个元素 - 以
state属性值作为结果对象的key,每个key对应的值固定为包含state和insurances两个属性的对象 - 遍历过程中遇到相同
state的元素,就把对应的insurance值追加到insurances数组中
内容的提问来源于stack exchange,提问作者dev_jun
相关产品推荐
相关产品推荐

