मान लीजिए, हमारे पास स्ट्रिंग / संख्या अक्षर की एक सरणी है जिसमें कुछ डुप्लिकेट मान शामिल हैं -
const array = ['day', 'night', 'afternoon', 'night', 'noon', 'night', 'noon', 'day', 'afternoon', 'day', 'night'];
हमें एक फ़ंक्शन groupSilar() लिखने की आवश्यकता है जो इस सरणी में लेता है और एक नया सरणी देता है जहां सभी दोहराई जाने वाली प्रविष्टियां पहले तत्व के रूप में एक उप-सरणी में समूह होती हैं और मूल सरणी में उनकी कुल गणना दूसरे तत्व के रूप में होती है।
तो, इस उदाहरण के लिए, आउटपुट होना चाहिए -
[ [ 'day', 3 ], [ 'night', 4 ], [ 'afternoon', 2 ], [ 'noon', 2 ] ]
आइए इस फ़ंक्शन के लिए कोड लिखें। हम एक नया, आवश्यक, सरणी बनाने के लिए Array.prototype.map() फ़ंक्शन का उपयोग करेंगे, और हम सरणी में दोहराई जाने वाली प्रविष्टियों का ट्रैक रखने के लिए मानचित्र का उपयोग करेंगे -
उदाहरण
const array = ['day', 'night', 'afternoon', 'night', 'noon', 'night', 'noon', 'day', 'afternoon', 'day', 'night']; const groupSimilar = arr => { return arr.reduce((acc, val) => { const { data, map } = acc; const ind = map.get(val); if(map.has(val)){ data[ind][1]++; } else { map.set(val, data.push([val, 1])-1); } return { data, map }; }, { data: [], map: new Map() }).data; }; console.log(groupSimilar(array));
आउटपुट
कंसोल में आउटपुट होगा -
[ [ 'day', 3 ], [ 'night', 4 ], [ 'afternoon', 2 ], [ 'noon', 2 ] ]