मान लीजिए, हमारे पास इस तरह की वस्तुओं की एक सरणी है -
const arr = [
{"firstName":"John", "value": 89},
{"firstName":"Peter", "value": 151},
{"firstName":"Anna", "value": 200},
{"firstName":"Peter", "value": 22},
{"firstName":"Anna","value": 60}
]; हमें एक जावास्क्रिप्ट फ़ंक्शन लिखने की आवश्यकता है जो एक ऐसी सरणी लेता है और उन सभी ऑब्जेक्ट्स की वैल्यू प्रॉपर्टी को जोड़ता है जिनका फर्स्टनाम प्रॉपर्टी के लिए समान मूल्य होता है।
इसलिए, उपरोक्त सरणी के लिए, आउटपुट इस तरह दिखना चाहिए -
const output = [
{"firstName":"John", "value": 89},
{"firstName":"Peter", "value": 173},
{"firstName":"Anna", "value": 260}
]; प्रत्येक वस्तु के लिए, हम उनकी समान वस्तुओं को पुनरावर्ती रूप से खोजेंगे
(इस प्रश्न के संदर्भ के लिए समान वस्तुएं वे हैं जिनका फर्स्टनाम मान समान है)।
फिर हम एक ऑब्जेक्ट में वैल्यू प्रॉपर्टी जोड़ेंगे और दूसरी ऑब्जेक्ट को ऐरे से हटा देंगे। यह तब तक किया जाएगा जब तक हम सरणी के अंत तक नहीं पहुंच जाते। पहुंचने पर, हम अपने सरणी को वांछित सरणी में कम कर देते।
उदाहरण
निम्नलिखित कोड है -
const arr = [
{"firstName":"John", "value": 89},
{"firstName":"Peter", "value": 151},
{"firstName":"Anna", "value": 200},
{"firstName":"Peter", "value": 22},
{"firstName":"Anna","value": 60}
];
const sumSimilar = arr => {
const res = [];
for(let i = 0; i < arr.length; i++){
const ind = res.findIndex(el => el.firstName === arr[i].firstName);
if(ind === -1){
res.push(arr[i]);
}else{
res[ind].value += arr[i].value;
};
};
return res;
};
console.log(sumSimilar(arr)); आउटपुट
यह कंसोल में निम्न आउटपुट उत्पन्न करेगा -
[
{ firstName: 'John', value: 89 },
{ firstName: 'Peter', value: 173 },
{ firstName: 'Anna', value: 260 }
]