समस्या
हमें एक जावास्क्रिप्ट फ़ंक्शन लिखना आवश्यक है जो पहले तर्क के रूप में अंग्रेजी लोअरकेस अक्षरों के तारों की सरणी, एआर लेता है। हमारे फ़ंक्शन का दूसरा तर्क एक संख्या, संख्या (संख्या <गिरफ्तारी की लंबाई) है।
हमारा कार्य सरणी गिरफ्तारी में सबसे अधिक बार आने वाले तत्वों की संख्या को वापस करने वाला है।
उत्तर को आवृत्ति के अनुसार उच्चतम से निम्नतम तक क्रमबद्ध किया जाना चाहिए। यदि दो शब्दों की बारंबारता समान हो, तो निम्न वर्णक्रम वाला शब्द पहले आता है।
उदाहरण के लिए, यदि फ़ंक्शन का इनपुट है
इनपुट
const arr = ["the", "day", "is", "sunny", "the", "the", "the", "sunny", "is", "is"]; const num = 4;
आउटपुट
const output = ["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' ]