हमारे पास नंबर/स्ट्रिंग लिटरल्स का एक ऐरे है जिसमें कुछ रिपीटेड एंट्रीज़ हैं। हमारा काम एक ऐसा फ़ंक्शन लिखना है जो एक पॉजिटिव इंटीजर n लेता है और उन सभी एलिमेंट्स का सबऐरे लौटाता है जो केवल आर्गुमेंट में निर्दिष्ट संख्या n से अधिक या बराबर बार प्रकट होते हैं।
इसलिए, आइए इस फ़ंक्शन के लिए कोड लिखते हैं। हम एलिमेंट्स की फ्रीक्वेंसी की गिनती रखने के लिए Map() का उपयोग करेंगे और बाद में उन एलिमेंट्स को लौटाएंगे जो निर्दिष्ट गिनती से अधिक हैं।
उदाहरण
const arr = [34, 6, 34, 8, 54, 7, 87, 23, 34, 6, 21, 6, 23, 4, 23];
const moreThan = (arr, num) => {
const creds = arr.reduce((acc, val) => {
let { map, res } = acc;
const count = map.get(val);
if(!count && typeof count !== 'number'){
map.set(val, 1);
}else if(num - count <= 1){
res.push(val);
} else {
map.set(val, count+1);
};
return {map, res};
}, {
map: new Map(),
res: []
});
return creds.res;
};
console.log(moreThan(arr, 3));आउटपुट
कंसोल में आउटपुट होगा -
[34, 6, 23]