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