Advertisement
Doc_Holliwood

Untitled

Aug 30th, 2019
426
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // The arrays:
  2.  
  3. const data = [{
  4.         id: 1,
  5.         name: 'package1',
  6.         rows: [{
  7.             id: 2,
  8.             name: 'item2',
  9.             rows: [{
  10.                     id: 3,
  11.                     name: 'item 3',
  12.                     rows: [{
  13.                             id: 4,
  14.                             name: 'item 4',
  15.                         },
  16.                         {
  17.                             id: 5,
  18.                             name: 'item 5',
  19.                         }
  20.                     ]
  21.                 },
  22.                 {
  23.                     id: 6,
  24.                     name: 'item 6',
  25.                 }
  26.             ]
  27.         }]
  28.     },
  29.     {
  30.         id: 7,
  31.         name: 'item 7',
  32.     },
  33. ];
  34.  
  35.  
  36. const data_with_groups = [{
  37.         id: 'g1',
  38.         name: 'group1',
  39.         rows: [{
  40.                 id: 1,
  41.                 name: 'package1',
  42.                 rows: [{
  43.                     id: 2,
  44.                     name: 'slot 99',
  45.                     rows: [{
  46.                             id: 3,
  47.                             name: 'item 2',
  48.                             rows: [{
  49.                                     id: 4,
  50.                                     name: 'item 7',
  51.                                 },
  52.                                 {
  53.                                     id: 5,
  54.                                     name: 'item 9',
  55.                                 }
  56.                             ]
  57.                         },
  58.                         {
  59.                             id: 6,
  60.                             name: 'item 3',
  61.                         }
  62.                     ]
  63.                 }]
  64.             },
  65.             {
  66.                 id: 7,
  67.                 name: 'item 0',
  68.             },
  69.         ]
  70.     },
  71.     {
  72.         id: 'g2',
  73.         name: 'group2',
  74.         rows: []
  75.     }
  76. ];
  77.  
  78. function find( id, rows, parent_item ) {
  79.     for ( let [index, item] of rows.entries() ) {
  80.         if ( id === item.id )
  81.             return parent_item;
  82.      
  83.         if ( 'rows' in item )
  84.             return find( id, item.rows, item );
  85.     };
  86. }
  87.  
  88. console.log( find(3, data).id );             // 2
  89. console.log( find(5, data_with_groups).id ); // 3
  90. console.log( find(7, data_with_groups) );    // undefined, because there is no parent object
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement