js递归函数

    1. function recursion(data, current) {
    2. var result = null;
    3. if (!data) {
    4. return;
    5. }
    6. for (var i = 0; i < data.length; i++) {
    7. var item = data[i];
    8. if (item.id === current) {
    9. result = item.name;
    10. return result;
    11. }
    12. if (item.children && item.children.length > 0) {
    13. result = this.recursion(item.children, current);
    14. if (result) return result;
    15. }
    16. }
    17. }

    数据格式

    1. let items=[{
    2. id: 1,
    3. name: 'Vuetify Human Resources',
    4. children: [{
    5. id: 2,
    6. name: 'Core team',
    7. children: [{
    8. id: 201,
    9. name: 'John'
    10. },
    11. {
    12. id: 202,
    13. name: 'Kael'
    14. },
    15. {
    16. id: 203,
    17. name: 'Nekosaur'
    18. },
    19. {
    20. id: 204,
    21. name: 'Jacek'
    22. },
    23. {
    24. id: 205,
    25. name: 'Andrew'
    26. }
    27. ]
    28. },
    29. {
    30. id: 3,
    31. name: 'Administrators',
    32. children: [{
    33. id: 301,
    34. name: 'Ranee'
    35. },
    36. {
    37. id: 302,
    38. name: 'Rachel'
    39. }
    40. ]
    41. },
    42. {
    43. id: 4,
    44. name: 'Contributors',
    45. children: [{
    46. id: 401,
    47. name: 'Phlow'
    48. },
    49. {
    50. id: 402,
    51. name: 'Brandon'
    52. },
    53. {
    54. id: 403,
    55. name: 'Sean'
    56. }
    57. ]
    58. }
    59. ]
    60. },
    61. {
    62. id: 5,
    63. name: 'Example',
    64. children: [{
    65. id: 501,
    66. name: 'qaz'
    67. }]
    68. },
    69. {
    70. id: 6,
    71. name: 'Qdd',
    72. children: [{
    73. id: 601,
    74. name: 'yui'
    75. }]
    76. }
    77. ]