如何使用对象点表示法构建JSON树结构

问题描述 投票:1回答:1

我在数组中有字符串文字的集合

var selected = ['a', 'b.c', 'b.c.d', 'b.c.d.e'];

如何使用JavaScript创建下面的JSON树结构?任何帮助都将是可观的。

[{
    "title": "a",
    "id": "a"
  },
  {
    "title": "b",
    "id": "b",
    "children": [{
      "title": "c",
      "id": "c",
      "children": [{
          "title": "d",
          "id": "d",
          "children": [{
            "title": "e",
            "id": "e"
          }]
        },
        {
          "title": "f",
          "id": "f"
        }
      ]
    }]
  }
]
javascript arrays json treeview hierarchical-data
1个回答
1
投票
使用recursion

var selected = ['a', 'b.c', 'b.c.d', 'b.c.d.e', 'b.c.g']; var result = {}; selected.forEach(i => i.split('.').reduce((result, val) => result[val] = result[val] || {}, result) ) function toTree(o) { return Object.entries(o).map(([k, v]) => { let r = {'title': k, 'id': k, 'children': toTree(v)} !r.children.length && delete r.children return r }) } result = toTree(result) console.log(result)
© www.soinside.com 2019 - 2024. All rights reserved.