前言
递归
需要一个结束条件。
function query(arr, target){let res = [];if(!Array.isArray(arr)) return res;for(let i = 0; i < arr.length; i++){const item = arr[i];if(item.name === target) res.push(item);if(item?.children?.length) res = res.concat(query(item.children, target));}return res;}function randomInt(min, max){const num = min + Math.random() * (max + 1);return Math.floor(num);}function random(){return randomInt(1,10);}function generateArr(len){return new Array(len).fill(0).map(i=>{return {name:random(),children: generateArr(--len)}})}const arr = generateArr(10);query(arr,5);
