मान लीजिए, हमारे पास संख्याओं की सरणियों की एक सरणी है जैसे:
const arr = [[1, 45], [1, 34], [1, 49], [2, 34], [4, 78], [2, 67], [4, 65]];
प्रत्येक उपसरणी में सख्ती से दो तत्व होने तय हैं। हमें एक फ़ंक्शन लिखना आवश्यक है जो एक नई सरणी बनाता है जहां उन उपसरणियों के सभी दूसरे तत्व जिनका पहला मान समान है, एक साथ समूहित होते हैं।
तो, उपरोक्त सरणी के लिए, आउटपुट इस तरह दिखना चाहिए:
const output = [ [45, 34, 49], [34, 67], [78, 65] ];
हम Array.prototype.reduce() विधि का उपयोग कर सकते हैं जो आवश्यक सरणी बनाने के लिए Map() की मदद लेती है।
इसलिए, आइए इस फ़ंक्शन के लिए कोड लिखते हैं:
उदाहरण
इसका कोड निम्नलिखित होगा:
const arr = [[1, 45], [1, 34], [1, 49], [2, 34], [4, 78], [2, 67], [4, 65]];
const constructSimilarArray = (arr = []) => {
const creds = arr.reduce((acc, val) => {
const { map, res } = acc;
if(!map.has(val[0])){
map.set(val[0], res.push([val[1]]) - 1);
}else{
res[map.get(val[0])].push(val[1]);
};
return { map, res };
}, {
map: new Map(),
res: []
});
return creds.res;
};
console.log(constructSimilarArray(arr));
आउटपुट
कंसोल में आउटपुट होगा:
[ [ 45, 34, 49 ], [ 34, 67 ], [ 78, 65 ] ]