JavaScript实现对象数组指定字段分组存入同对象新数组字段
JavaScript 对象数组字段提取归类实现方案
你要做的数组结构转换可以直接用数组原生方法实现,根据是否需要保留原始数据,有两种常用写法:
方案1:生成新数组(推荐,无副作用)
用Array.prototype.map做一对一映射,不会修改原始数组和原对象,避免数据污染:
const result = myArray.map(item => ({ Name: item.Name, Details: [ { Age: item.Age, Email: item.Email } ] }))
运行后result就是你要的目标结构,原始myArray不会发生任何改动。
方案2:直接修改原数组
如果业务场景允许改动原始数据,可以用forEach遍历直接修改每一项:
myArray.forEach(item => { // 组装要放到Details里的字段 const detail = { Age: item.Age, Email: item.Email } // 新增Details字段 item.Details = [detail] // 删除原对象上已经归类的字段 delete item.Age delete item.Email })
运行后原始myArray就会直接变成你期望的结构。
输出验证
两种方案最终得到的数组结构完全匹配你的预期:
[ { Name: "Alex", Details: [{ Age: "13", Email: " Alex @gmail.com" }] }, { Name: "Eva", Details: [{ Age: "24", Email: " Eva @gmail.com" }] }, { Name: "Adem", Details: [{ Age: "60", Email: " Adem @gmail.com" }] }, { Name: "Jack", Details: [{ Age: "20", Email: " Jack @gmail.com" }] } ]
如果后续需要归类更多字段,只要在Details的内部对象里补充对应属性即可,整体逻辑不需要调整。
内容的提问来源于stack exchange,提问作者Peach
相关产品推荐
相关产品推荐

