हमारे पास सरणी की एक सरणी है, प्रत्येक उपसरणी में ठीक दो तत्व होते हैं, पहला एक स्ट्रिंग है, इस मामले में एक व्यक्ति का नाम और दूसरा एक पूर्णांक है, हमें जो करना है वह उन सभी उप-सरणी को जोड़ना है जिनमें उनका पहला तत्व समान है और दूसरा तत्व है सामान्य उप-सरणी के दूसरे तत्वों का योग होना चाहिए।
हमारा उदाहरण सरणी निम्नलिखित है -
const example = [[ 'first', 12 ], [ 'second', 19 ], [ 'first', 7 ]];
निम्नलिखित में परिवर्तित किया जाना चाहिए
const example = [[ 'first', 19 ], [ 'second', 19 ] ];
मान लें कि हम एक फ़ंक्शन कंबाइनएरे () लिखते हैं जो इनपुट के रूप में सरणी में लेता है और आउटपुट के रूप में संयुक्त सरणी देता है, उसी के लिए कोड होगा -
उदाहरण
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 ] ]
कम्बाइनअरे फ़ंक्शन को समझना -
यह सरणी पर पुनरावृति करता है, नाम को कुंजी के रूप में मैप करता है और किसी ऑब्जेक्ट में मान के रूप में प्रोप करता है, यह सुनिश्चित करता है कि डुप्लिकेट कुंजी एक साथ जुड़ जाती है, और अंत में ऑब्जेक्ट को सरणी की एक सरणी में बदल दिया जाता है और वापस कर दिया जाता है।
इस फ़ंक्शन की समय जटिलता O(2n) . है जिसे अक्सर O(n) . पर गोल किया जाता है और अंतरिक्ष जटिलता O(n) . है साथ ही।