समस्या
हमें एक JavaScript फ़ंक्शन लिखना है जो स्ट्रिंग्स की एक सरणी arr और एक संख्या num (num < arr.length) को आर्गुमेंट के रूप में लेता है।
फ़ंक्शन को सरणी arr में से num सबसे अधिक बार आने वाले तत्व लौटाने चाहिए।
उत्तर को आवृत्ति के अनुसार उच्चतम से निम्नतम क्रम में सॉर्ट किया जाना चाहिए। यदि दो शब्दों की आवृत्ति समान है, तो वर्णमाला क्रम में पहले आने वाला शब्द पहले आएगा।
उदाहरण के लिए, यदि इनपुट है:
इनपुट
const arr = ["the", "day", "is", "sunny", "the", "the", "the", "sunny", "is", "is"]; const num = 4;
आउटपुट
const output = ["the", "is", "sunny", "day"];
आउटपुट व्याख्या
"the", "is", "sunny" और "day" चार सबसे अधिक बार आने वाले शब्द हैं, जिनकी घटनाएं क्रमशः 4, 3, 2 और 1 हैं।
उदाहरण
निम्नलिखित कोड है:
const arr = ["the", "day", "is", "sunny", "the", "the", "the", "sunny", "is", "is"]; const num = 4; const mostFrequent = (arr = [], num = 1) => { const map = {}; let keys = []; for (let i = 0; i < arr.length; i++) { if (map[arr[i]]) { map[arr[i]]++; } else { map[arr[i]] = 1; } } for (let i in map) { keys.push(i); } keys = keys.sort((a, b) => { if (map[a] === map[b]) { if (a > b) { return 1; } else { return -1; } } else { return map[b] - map[a]; } }).slice(0, num); return keys; }; console.log(mostFrequent(arr, num));आउटपुट
[ 'the', 'is', 'sunny', 'day' ]