Konvertierung der Baumstruktur

Idee:

Konvertieren Sie zunächst das Array in ein Objekt (Karte). Der Schlüsselwert des Objekts ist die ID des Objekts

Objekte durchqueren; map[map[k].pid].children.push(map[k]) , [k repräsentiert den Index], pid gleich 0 repräsentiert den Wurzelknoten

// 数结构转换
      let arr = [
        {
          id: 1,
          pid: 0,
          name: "body",
        },
        {
          id: 2,
          pid: 1,
          name: "title",
        },
        {
          id: 3,
          pid: 2,
          name: "div",
        },
        {
          id: 4,
          pid: 2,
          name: "p",
        },
      ];
      function toTree(arr) {
        let result = [];
        let map = {};
        arr.forEach((item) => {
          map[item.id] = item;
        });
        console.log(map);
        for (let k in map) {
          if (map[k].pid == 0) {
            result.push(map[k]);
          } else {
            if (!map[map[k].pid].hasOwnProperty("children")) {
              map[map[k].pid].children = [];
            }
            map[map[k].pid].children.push(map[k]);
          }
        }
        console.log(result);
      }
      toTree(arr);

Ausgabeergebnis:

 

Supongo que te gusta

Origin blog.csdn.net/m0_73334325/article/details/132204822
Recomendado
Clasificación