Skip to content

通过子级查所有的父级

109 字小于 1 分钟

js

2024-12-28

let data = [
        {
          label: "武汉市",
          children: [
            {
              label: "武昌区",
              children: [
                {
                  label: "武昌001",
                },
                {
                  label: "武昌002",
                },
                {
                  label: "武昌003",
                },
              ],
            },
            {
              label: "洪山区",
              children: [
                {
                  label: "洪山001",
                },
                {
                  label: "洪山002",
                },
                {
                  label: "洪山003",
                },
              ],
            },
          ],
        },
      ];

     function getTreeItem(data, value, result1 = []) {
   for (let v of data) {
      if (v.label.includes(value)) {
         result1.push(v.label);
         if (!v.children || !v.children.length) {
            continue;
         }
      }
      if (v.children && v.children.length) {
         let result2 = getTreeItem(v.children, value);
         if (result2 && result2.length) {
           let result3 = [v.label, ...result2];
           result1.push(...result3);
         }
      }
   }
   return result1;
    } 

      let list = getTreeItem(data, "洪山002");
      console.log(list);