विचार करें, हमारे पास वस्तुओं की निम्नलिखित सरणी है -
const arr = [{ id: 121, hobby: 'cycling' }, { id: 125, hobby: 'jogging' }, { id: 129, hobby: 'reading' }, { id: 121, hobby: 'writing' }, { id: 121, hobby: 'playing football' }, { id: 125, hobby: 'cooking' }, { id: 129, hobby: 'horse riding' }];
मान लीजिए, हमें एक फ़ंक्शन लिखना है जो इस तरह की एक सरणी लेता है और इसे सामान्य आईडी संपत्ति के आधार पर मर्ज करता है, और शौक संपत्ति के लिए हम इसे एक सरणी असाइन करते हैं और वहां विशिष्ट आईडी के लिए सभी शौक डालते हैं।
हम सरणी पर पुनरावृति करने के लिए Array.prototype.reduce () विधि का उपयोग करेंगे और एक ही समय में एक ही सूचकांक के साथ प्रविष्टियों को मर्ज करेंगे।
ऐसा करने के लिए कोड होगा -
उदाहरण
const arr = [{ id: 121, hobby: 'cycling' }, { id: 125, hobby: 'jogging' }, { id: 129, hobby: 'reading' }, { id: 121, hobby: 'writing' }, { id: 121, hobby: 'playing football' }, { id: 125, hobby: 'cooking' }, { id: 129, hobby: 'horse riding' }]; const mergeArray = (arr) => { return arr.reduce((acc, val) => { const ind = acc.findIndex(item => item.id === val.id); if(ind !== -1){ acc[ind].hobby.push(val.hobby); }else{ acc.push({ id: val.id,hobby: [val.hobby] }); }; return acc; }, []); }; console.log(mergeArray(arr));
आउटपुट
कंसोल में आउटपुट होगा -
[ { id: 121, hobby: [ 'cycling', 'writing', 'playing football' ] }, { id: 125, hobby: [ 'jogging', 'cooking' ] }, { id: 129, hobby: [ 'reading', 'horse riding' ] } ]