前言

递归简单的例子

递归

需要一个结束条件。

  1. function query(arr, target){
  2. let res = [];
  3. if(!Array.isArray(arr)) return res;
  4. for(let i = 0; i < arr.length; i++){
  5. const item = arr[i];
  6. if(item.name === target) res.push(item);
  7. if(item?.children?.length) res = res.concat(query(item.children, target));
  8. }
  9. return res;
  10. }
  11. function randomInt(min, max){
  12. const num = min + Math.random() * (max + 1);
  13. return Math.floor(num);
  14. }
  15. function random(){
  16. return randomInt(1,10);
  17. }
  18. function generateArr(len){
  19. return new Array(len).fill(0).map(i=>{
  20. return {
  21. name:random(),
  22. children: generateArr(--len)
  23. }
  24. })
  25. }
  26. const arr = generateArr(10);
  27. query(arr,5);