मान लीजिए, हमारे पास ऑब्जेक्ट्स का एक ऐरे है जैसे:
const arr = [
{'ID-01':1},
{'ID-02':3},
{'ID-01':3},
{'ID-02':5}
];
हमें इन सभी ऑब्जेक्ट्स के मानों को एक साथ जोड़ना है जिनकी कीज़ समान हैं।
इसलिए, इस ऐरे के लिए आउटपुट होना चाहिए:
const output = [{'ID-01':4}, {'ID-02':8}];
हम ऐरे पर लूप करेंगे, समान कीज़ वाले मौजूदा ऑब्जेक्ट्स की जांच करेंगे, अगर वे हैं, तो हम उसमें मान जोड़ देंगे अन्यथा नए ऑब्जेक्ट्स को ऐरे में पुश करेंगे।
उदाहरण
निम्नलिखित कोड है:
const arr = [
{'ID-01':1},
{'ID-02':3},
{'ID-01':3},
{'ID-02':5}
];
const indexOf = function(key){
return this.findIndex(el => typeof el[key] === 'number')
};
Array.prototype.indexOf = indexOf;
const groupArray = arr => {
const res = [];
for(let i = 0; i < arr.length; i++){
const key = Object.keys(arr[i])[0];
const ind = res.indexOf(key);
if(ind !== -1){
res[ind][key] += arr[i][key];
}else{
res.push(arr[i]);
};
};
return res;
};
console.log(groupArray(arr));
आउटपुट
यह कंसोल में निम्नलिखित आउटपुट देगा:
[ { 'ID-01': 4 }, { 'ID-02': 8 } ]