let menus = [{ code: 1, name: '山西省', children: [ { code: 2, name: '朔州市', children: [ { code: 5, name: '朔城區' }, { code: 8, name: '山陰' } ] }, { code: 3, name: '大同市', children: [ { code: 6, name: '雲岡' } ] }, { code: 4, name: '太原市', children: [ { code: 7, name: '小店區' }, { code: 10, name: '迎澤區' } ] } ] }] function searchCode(list, name) { for (let item of list.values()) { if (item.name == name) { return item.code } else if (item.children) { let result = searchCode(item.children, name) if (result) return result } } } let res = searchCode(menus, '雲岡') console.log(res) // 6
小結:
類似於這種層級嵌套的數據結構,如果想找到某一個值,則需要用到遞歸的思想;
同時,需要注意的是子級的數據需要返回,見紅色部分。
