
将 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 的对象数组?的详细内容,更多请关注米云其它相关文章!
