js 如何把一个json数据,组装成树形数据

在 JavaScript 中,可以使用递归的方式将一个 JSON 数据组装成树形数据。

以下是一个示例代码:

function convertToTree(data) {
  const tree = [];
 
  for (let i = 0; i < data.length; i++) {
    const node = data[i];
    const parentId = node.parentId;
 
    if (parentId === null || parentId === undefined) {
      tree.push(node);
      continue;
    }
 
    for (let j = 0; j < data.length; j++) {
      const parentNode = data[j];
 
      if (parentNode.id === parentId) {
        if (!parentNode.children) {
          parentNode.children = [];
        }
 
        parentNode.children.push(node);
        break;
      }
    }
  }
 
  return tree;
}
 
// 示例数据
const jsonData = [
  { id: 1, name: 'Node 1', parentId: null },
  { id: 2, name: 'Node 2', parentId: 1 },
  { id: 3, name: 'Node 3', parentId: 1 },
  { id: 4, name: 'Node 4', parentId: 2 },
  { id: 5, name: 'Node 5', parentId: 2 },
  { id: 6, name: 'Node 6', parentId: 3 },
];
 
const treeData = convertToTree(jsonData);
console.log(treeData);

以上代码将会输出以下结果:

[
  { id: 1, name: 'Node 1', children: [
    { id: 2, name: 'Node 2', children: [
      { id: 4, name: 'Node 4' },
      { id: 5, name: 'Node 5' }
    ] },
    { id: 3, name: 'Node 3', children: [
      { id: 6, name: 'Node 6' }
    ] }
  ] }
]

这样,你就可以将一个 JSON 数据组装成树形数据了。

你可能感兴趣的:(javascript,json,前端)