如何将嵌套对象转换为嵌套结构的数组?

如何将嵌套对象转换为嵌套结构的数组?

对象转换为嵌套结构数组

给定一个嵌套的对象 obj,要求将其转换为一个嵌套结构的数组 list。每个数组项代表 obj 中的一个键及其对应的值列表,转换为以下格式:

const list = [  {    id: 1, // 自动生成的 ID    name: 'a', // 对象的键    childList: [      { id: 2, name: 'a1' }, // 子数组中的第一项      { id: 3, name: 'a2' }, // 子数组中的第二项    ],  },  {    id: 4, // 自动生成的 ID    name: 'b', // 对象的键    childList: [      { id: 5, name: 'b1' }, // 子数组中的第一项      { id: 6, name: 'b2' }, // 子数组中的第二项      { id: 7, name: 'b3' }, // 子数组中的第三项    ],  },];

登录后复制

解决方案:

使用 Object.entries() 和 reduce() 方法。

将 obj 的键值对转换为数组:

let obj = {  "a": [    "a1",    "a2"  ],  "b": [    "b1",    "b2",    "b3"  ]};let entries = Object.entries(obj);

登录后复制

使用 reduce() 将每个键值对转换为 list 项:

entries.reduce((acc, [name, val]) => {  acc.push({    id: id++,    name,    childList: val.map(name => ({ id: id++, name })),  });  return acc;}, []);

登录后复制id 是自动生成的 ID。name 是键值对的键。childList 是值数组,每个值已转换为具有自动生成 ID 和值的子项。

最终,acc 数组将采用 list 的格式。

以上就是如何将嵌套对象转换为嵌套结构的数组?的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2806960.html

(0)
上一篇 2025年3月8日 22:23:50
下一篇 2025年3月6日 18:15:44

AD推荐 黄金广告位招租... 更多推荐

相关推荐

发表回复

登录后才能评论