मान लीजिए हमारे पास ऑब्जेक्ट की एक सरणी है:
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: [] }
]