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

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' }
];

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

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

[
  { 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. JavaScript में ऑब्जेक्ट्स की सरणी को ID के आधार पर कैसे ग्रुप करें? JavaScript में ऑब्जेक्ट्स की सरणी को ID के आधार पर कैसे ग्रुप करें?

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

  1. JavaScript में हैश (ऑब्जेक्ट) की कीज़ (keys) कैसे खोजें? JavaScript में हैश (ऑब्जेक्ट) की कीज़ (keys) कैसे खोजें?

    JavaScript में हैश (ऑब्जेक्ट) की कीज़ खोजने का निम्नलिखिक कोड है:उदाहरण<!DOCTYPE html> <html lang="hi"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Object K

  1. JavaScript का उपयोग करके पैरेंट एलिमेंट के चाइल्ड एलिमेंट कैसे प्राप्त करें? JavaScript का उपयोग करके पैरेंट एलिमेंट के चाइल्ड एलिमेंट कैसे प्राप्त करें?

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