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

सरणी जावास्क्रिप्ट में मूल कुंजी द्वारा बाल कुंजी कैसे उत्पन्न करें?

<घंटा/>

मान लीजिए, हमारे पास इस तरह की वस्तुओं की एक सरणी है -

const arr = [
   { id: 1, parent_id: 0, title: 'Movies' },
   { id: 2, parent_id: 0, title: 'Music' },
   { id: 3, parent_id: 1, title: 'Russian movies' },
   { id: 4, parent_id: 2, title: 'Russian music' },
   { id: 5, parent_id: 3, title: 'New' },
   { id: 6, parent_id: 3, title: 'Top10' },
   { id: 7, parent_id: 4, title: 'New' },
   { id: 8, parent_id: 4, title: 'Top10' },
   { id: 9, parent_id: 0, title: 'Soft' }
];

हमें एक फ़ंक्शन लिखने की आवश्यकता होती है जो इस सरणी में लेता है और ऑब्जेक्ट की एक नई सरणी देता है जिसमें प्रत्येक ऑब्जेक्ट में एक अतिरिक्त संपत्ति "चाइल्ड" होती है जो ऑब्जेक्ट की सभी आईडी की एक सरणी होनी चाहिए जो किसी विशेष ऑब्जेक्ट के प्रत्यक्ष या अप्रत्यक्ष बच्चे हैं।

इसलिए, आउटपुट इस तरह दिखना चाहिए -

[
   { id: 1, parent_id: 0, title: 'Movies', childs: [ 3, 5, 6 ] },
   { id: 2, parent_id: 0, title: 'Music', childs: [ 4, 7, 8 ] },
   { id: 3, parent_id: 1, title: 'Russian movies', childs: [ 5, 6 ] },
   { id: 4, parent_id: 2, title: 'Russian music', childs: [ 7, 8 ] },
   { id: 5, parent_id: 3, title: 'New', childs: [] },
   { id: 6, parent_id: 3, title: 'Top10', childs: [] },
   { id: 7, parent_id: 4, title: 'New', childs: [] },
   { id: 8, parent_id: 4, title: 'Top10', childs: [] },
   { id: 9, parent_id: 0, title: 'Soft', childs: [] }
]

अब, इस फ़ंक्शन के लिए कोड लिखते हैं -

उदाहरण

const arr = [
   { id: 1, parent_id: 0, title: 'Movies' },
   { id: 2, parent_id: 0, title: 'Music' },
   { id: 3, parent_id: 1, title: 'Russian movies' },
   { id: 4, parent_id: 2, title: 'Russian music' },
   { id: 5, parent_id: 3, title: 'New' },
   { id: 6, parent_id: 3, title: 'Top10' },
   { id: 7, parent_id: 4, title: 'New' },
   { id: 8, parent_id: 4, title: 'Top10' },
   { id: 9, parent_id: 0, title: 'Soft' }
];
const generateChild = arr => {
   return arr.reduce((acc, val, ind, array) => {
      const childs = [];
      array.forEach((el, i) => {
         if(childs.includes(el.parent_id) || el.parent_id === val.id){
            childs.push(el.id);
         };
      });
      return acc.concat({...val, childs});
   }, []);
};
console.log(generateChild(arr));

आउटपुट

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

[
   { id: 1, parent_id: 0, title: 'Movies', childs: [ 3, 5, 6 ] },
   { id: 2, parent_id: 0, title: 'Music', childs: [ 4, 7, 8 ] },
   { id: 3, parent_id: 1, title: 'Russian movies', childs: [ 5, 6 ] },
   { id: 4, parent_id: 2, title: 'Russian music', childs: [ 7, 8 ] },
   { id: 5, parent_id: 3, title: 'New', childs: [] },
   { id: 6, parent_id: 3, title: 'Top10', childs: [] },
   { id: 7, parent_id: 4, title: 'New', childs: [] },
   { id: 8, parent_id: 4, title: 'Top10', childs: [] },
   { id: 9, parent_id: 0, title: 'Soft', childs: [] }
]

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

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

  1. जावास्क्रिप्ट में हैश की कुंजी कैसे खोजें?

    जावास्क्रिप्ट में हैश की कुंजी खोजने के लिए कोड निम्नलिखित है - उदाहरण दस्तावेज़ बॉडी { फॉन्ट-फ़ैमिली:सेगो यूआई, ताहोमा, जिनेवा, वर्दाना, सेन्स-सेरिफ़; } .result { फ़ॉन्ट-आकार:20px; फ़ॉन्ट-वजन:500; }जावास्क्रिप्ट में हैश की कुंजियाँ ढूँढ़ेंDISPLAYहैश कुंजियाँ प्रदर्शित करने के लिए उपरोक्त बटन पर क्ल

  1. जावास्क्रिप्ट का उपयोग कर माता-पिता का बाल तत्व कैसे प्राप्त करें?

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