数组是多维的, 查找最子级的 id
1 let data = [ 2 { 3 id: 1, 4 supplier: false, 5 text: "江苏", 6 childList: [{ 7 id: 3, 8 supplier: false, 9 text: "南京", 10 childList: [{ 11 id: 1, 12 supplier: true, 13 text: "南京机械厂" 14 }] 15 }], 16 }, 17 { 18 id: 4, 19 supplier: false, 20 text: "山东", 21 childList: [{ 22 id: 3, 23 supplier: false, 24 text: "济南", 25 childList: [{ 26 id: 2, 27 supplier: true, 28 text: "机械厂" 29 }] 30 }], 31 }] 32 33 34 findSupLink(data,supplierId) { 35 //传入 36 var fun = function (i, n) { 37 if (i && i.length > 0) { 38 for (let v of i) { 39 if (v.supplier) { 40 return v.id == n ? v.id : false 41 } else { 42 if (v.childList && v.childList.length > 0) { 43 let re = fun(v.childList, n) 44 if (re) { 45 return v.id + ',' + re 46 } 47 } 48 } 49 } 50 } 51 } 52 53 let ret = fun(data, supplierId) 54 ret = eval(`([${ret}])`) 55 console.log(ret) 56 return eval(`([${ret}])`) 57 } 58 //调用 59 this.findSupLink(data,1)
结果: [1, 3,1]