मान लीजिए, हमारे पास ऑब्जेक्ट्स की दो सरणियाँ हैं जिनमें किसी कंपनी के कुछ उत्पादों के बारे में जानकारी होती है -
const first = [
{
id: "57e7a1cd6a3f3669dc03db58",
quantity:3
},
{
id: "57e77b06e0566d496b51fed5",
quantity:3
},
{
id: "57e7a1cd6a3f3669dc03db58",
quantity:3
},
{
id: "57e77b06e0566d496b51fed5",
quantity:3
}
];
const second = [
{
id: "57e7a1cd6a3f3669dc03db58",
quantity:6
},
{
id: "57e77b06e0566d496b51fed5",
quantity:6
}
]; अब हमें एक ऐसा फ़ंक्शन लिखने की आवश्यकता है जो दो सरणियों को मर्ज करता है, जैसे कि समान आईडी वाले ऑब्जेक्ट दोहरावदार नहीं दिखते हैं और इसके अलावा, ऑब्जेक्ट डुप्लिकेट आईडी के लिए मात्रा संपत्ति एक साथ जुड़ जाती है।
इसलिए, आइए इस फ़ंक्शन के लिए कोड लिखें -
उदाहरण
const first = [
{
id: "57e7a1cd6a3f3669dc03db58",
quantity:3
},
{
id: "57e77b06e0566d496b51fed5",
quantity:3
},
{
id: "57e7a1cd6a3f3669dc03db58",
quantity:3
},
{
id: "57e77b06e0566d496b51fed5",
quantity:3
}
];
const second = [
{
id: "57e7a1cd6a3f3669dc03db58",
quantity:6
},
{
id: "57e77b06e0566d496b51fed5",
quantity:6
}
];
const mergeArray = (first, second) => {
return [...first, ...second].reduce((acc, val, i, arr) => {
const { id, quantity } = val;
const ind = acc.findIndex(el => el.id === id);
if(ind !== -1){
acc[ind].quantity += quantity;
}else{
acc.push({
id,
quantity
});
}
return acc;
}, []);
}
console.log(mergeArray(first, second)); आउटपुट
कंसोल में आउटपुट होगा -
[
{ id: '57e7a1cd6a3f3669dc03db58', quantity: 12 },
{ id: '57e77b06e0566d496b51fed5', quantity: 12 }
]