Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Javascript

नेस्टेड जावास्क्रिप्ट ऑब्जेक्ट्स की गहराई के स्तर को कैसे गिनें?

<घंटा/>

हमारे पास ऑब्जेक्ट्स की एक सरणी है, जिसमें आगे इस तरह की नेस्टेड ऑब्जेक्ट्स हैं -

const arr = [{
   id: 0, children: []
}, {
      id: 1, children: [{
      id: 2, children: []
}, {
      id: 3, children: [{
         id: 4, children: []
      }]
   }]
}];

हमारा काम एक पुनरावर्ती फ़ंक्शन लिखना है, जैसे कि असाइनडेप्थ () जो इस सरणी को लेता है और प्रत्येक नेस्टेड ऑब्जेक्ट को डेप्थ प्रॉपर्टी असाइन करता है। जैसे आईडी 0 वाली वस्तु की गहराई 0 होगी, आईडी 1 में भी गहराई 1 होगी, और चूंकि आईडी 2 और आईडी 3 आईडी 1 के अंदर नेस्टेड हैं, इसलिए उनकी गहराई 1 और आईडी 4 होगी, जो आईडी 3 के अंदर और नेस्टेड है, गहराई 2 होगी।

इसलिए, इस फ़ंक्शन के लिए कोड लिखें। यह एक सरल पुनरावर्ती कार्य है जो उप-वस्तुओं को बार-बार तब तक पुनरावृत्त करता है जब तक कि यह सरणी के अंत तक नहीं पहुंच जाता -

उदाहरण

const arr = [{
   id: 0, children: []
}, {
      id: 1, children: [{
      id: 2, children: []
}, {
      id: 3, children: [{
         id: 4, children: []
      }]
   }]
}];
const assignDepth = (arr, depth = 0, index = 0) => {
   if(index < arr.length){
      arr[index].depth = depth;
      if(arr[index].children.length){
         return assignDepth(arr[index].children, depth+1, 0);
      };
      return assignDepth(arr, depth, index+1);
   };
   return;
};
assignDepth(arr);
console.log(JSON.stringify(arr, undefined, 4));

आउटपुट

कंसोल में आउटपुट होगा -

[
   {
      "id": 0,
      "children": [],
      "depth": 0
   },
   {
      "id": 1,
      "children": [
         {
            "id": 2,
            "children": [],
            "depth": 1
         },
         {
            "id": 3,
            "children": [
               {
                  "id": 4,
                  "children": [],
                  "depth": 2
               }
            ],
            "depth": 1
         }
      ],
      "depth": 0
   }
]

  1. जावास्क्रिप्ट में आईडी द्वारा वस्तुओं की सरणी कैसे समूहित करें?

    जावास्क्रिप्ट में आईडी के आधार पर वस्तुओं के समूह के लिए कोड निम्नलिखित है - उदाहरण <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <titl

  1. दो जावास्क्रिप्ट ऑब्जेक्ट्स को कैसे मर्ज करें?

    दो जावास्क्रिप्ट ऑब्जेक्ट्स को एक साथ मर्ज करने के लिए कोड निम्नलिखित है - उदाहरण <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title&

  1. जावास्क्रिप्ट में किसी मान के आधार पर वस्तुओं को कैसे समूहित करें?

    जावास्क्रिप्ट में मान के आधार पर वस्तुओं को समूहबद्ध करने के लिए कोड निम्नलिखित है - उदाहरण <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />