如何将 JavaScript 对象转换为包含嵌套 childList 的对象数组?
今日不肯埋头,明日何以抬头!每日一句努力自己的话哈哈~哈喽,今天我将给大家带来一篇《如何将 JavaScript 对象转换为包含嵌套 childList 的对象数组? 》,主要内容是讲解等等,感兴趣的朋友可以收藏或者有更好的建议在评论提出,我都会认真看的!大家一起进步,一起学习!

将 JavaScript 对象转换为对象数组
问题:
如何转换以下原始 JavaScript 对象为具有以下格式的对象数组?
原始对象:
const obj = {
"a": ["a1", "a2"],
"b": ["b1", "b2", "b3"],
// ......
};
目标对象数组:
const list = [
{
id: 1,
name: 'a',
childList: [
{ id: 3, name: 'a1' },
{ id: 4, name: 'a2' },
]
},
{
id: 2,
name: 'b',
childList: [
{ id: 5, name: 'b1' },
{ id: 6, name: 'b2' },
{ id: 7, name: 'b2' },
]
}
];
解决方案:
使用 Object.entries() 和 reduce() 方法:
let obj = {
"a": ["a1", "a2"],
"b": ["b1", "b2", "b3"],
// ......
};
let id = 1;
Object.entries(obj).reduce((acc, [name, val]) => {
acc.push({
id: id++,
name,
childList: val.map(name => ({ id: id++, name })),
});
return acc;
}, []);
结果:
此代码将生成与目标对象数组相同的对象数组。
终于介绍完啦!小伙伴们,这篇关于《如何将 JavaScript 对象转换为包含嵌套 childList 的对象数组? 》的介绍应该让你收获多多了吧!欢迎大家收藏或分享给更多需要学习的朋友吧~米云公众号也会发布文章相关知识,快来关注吧!
- win11壁纸被锁定更换不了怎么办 win11壁纸被锁定更换不了详解
