如何将嵌套对象数组转换为带指定键名的非嵌套对象数组
转换实现代码
你可以用JavaScript数组的reduce方法快速完成转换,逻辑是先把每个顶层对象的department映射为name、补全空的description字段,再和自身的units子数组合并入结果集即可:
const convert = (raw) => { return raw.reduce((acc, cur) => { // 构造顶层条目 const topEntry = { name: cur.department, total: cur.total, planned: cur.planned, description: '' } // 合并顶层条目 + 子units所有条目 return acc.concat(topEntry, cur.units) }, []) } // 测试调用 const originalData = [{ department: 'IT', total: 7, planned: 5, units: [ {name: 'HR', total: 30, planned: 5, description: 'HR Admin'}, {name: 'Sales', total: 4, planned: 9, description: 'Sales Admin'} ] }] const result = convert(originalData) console.log(result)
如果实际场景中存在更深层级的嵌套结构,只需要额外加递归逻辑判断子项是否存在units字段,重复调用转换逻辑即可适配。
内容的提问来源于stack exchange,提问作者Rakesh
相关产品推荐
相关产品推荐

