विचार करें, हमारे पास ऑब्जेक्ट्स का निम्न ऐरे है:
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' }
];
मान लीजिए, हमें एक फ़ंक्शन लिखना है जो ऐसा ऐरे लेता है और सामान्य id प्रॉपर्टी के आधार पर इसे मर्ज करता है, और hobby प्रॉपर्टी के लिए हम इसे एक ऐरे असाइन करते हैं और विशिष्ट ids के लिए सभी शौक उसमें डालते हैं।
हम 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' ] }
]