मान लीजिए हमारे पास ऑब्जेक्ट की दो सरणियाँ हैं जिनमें कंपनी के कुछ उत्पादों के बारे में जानकारी है:
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 }
];
अब हमें एक फ़ंक्शन लिखना है जो दो सरणियों को मर्ज करता है, ताकि समान आईडी वाले ऑब्जेक्ट दोहराव न करें और इसके अलावा, डुप्लिकेट आईडी वाले ऑब्जेक्ट के लिए quantity गुण एक साथ जुड़ जाएँ।
आइए इस फ़ंक्शन के लिए कोड लिखते हैं:
उदाहरण
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 }
]