हमारे पास एक ऐरे का ऐरे है, प्रत्येक सबऐरे में ठीक दो तत्व होते हैं, पहला एक स्ट्रिंग है (इस मामले में एक व्यक्ति का नाम) और दूसरा एक इंटीजर है। हमें उन सभी सबऐरे को संयोजित करना है जिनका पहला तत्व समान है और दूसरा तत्व सामान्य सबऐरे के दूसरे तत्वों का योग होना चाहिए।
निम्न हमारा उदाहरण ऐरे है:
const example = [[ 'first', 12 ], [ 'second', 19 ], [ 'first', 7 ]];
इसे निम्न में बदला जाना चाहिए:
const example = [[ 'first', 19 ], [ 'second', 19 ] ];
मान लीजिए हम एक फ़ंक्शन combineArray() लिखते हैं जो ऐरे को इनपुट के रूप में लेता है और संयुक्त ऐरे को आउटपुट के रूप में लौटाता है, इसके लिए कोड होगा:
उदाहरण
const people = [
['Ram', 21],
['Mohan', 33],
['Vikram', 25],
['Mike', 29],
['Mohan', 41],
['Vikram', 26]
];
const combineArray = (people) => {
const map = {};
for(const index in people){
const name = people[index][0];
const prop = people[index][1];
if(map[name]){
map[name] += prop;
}else{
map[name] = prop;
}
}
return Object.keys(map).map(key => [key, map[key]]);
}
console.log(combineArray(people));
आउटपुट
कंसोल में आउटपुट होगा:
[ [ 'Ram', 21 ], [ 'Mohan', 74 ], [ 'Vikram', 51 ], [ 'Mike', 29 ] ]
combineArray फ़ंक्शन को समझना:
यह ऐरे पर पुनरावृति करता है, नाम को कुंजी और prop को मान के रूप में एक ऑब्जेक्ट में मैप करता है, यह सुनिश्चित करते हुए कि डुप्लिकेट कुंजी एक साथ जुड़ जाती हैं, और अंत में ऑब्जेक्ट को ऐरे के ऐरे में बदलकर लौटाता है।
इस फ़ंक्शन की समय जटिलता O(2n) है जिसे अक्सर O(n) तक राउंड किया जाता है और स्पेस जटिलता O(n) भी है।