curriculum/challenges/english/blocks/daily-coding-challenges-javascript/68b06e589bf227324381476f.md
Given a paragraph, return an array of the three most frequently occurring words.
Hello and hello as the same word.,), periods (.), and exclamation points (!).getWords("Coding in Python is fun because coding Python allows for coding in Python easily while coding") should return ["coding", "python", "in"].
assert.deepEqual(getWords("Coding in Python is fun because coding Python allows for coding in Python easily while coding"), ["coding", "python", "in"]);
getWords("I like coding. I like testing. I love debugging!") should return ["i", "like", "coding"].
assert.deepEqual(getWords("I like coding. I like testing. I love debugging!"), ["i", "like", "coding"]);
getWords("Debug, test, deploy. Debug, debug, test, deploy. Debug, test, test, deploy!") should return ["debug", "test", "deploy"].
assert.deepEqual(getWords("Debug, test, deploy. Debug, debug, test, deploy. Debug, test, test, deploy!"), ["debug", "test", "deploy"]);
function getWords(paragraph) {
return paragraph;
}
function getWords(paragraph) {
const cleaned = paragraph.replace(/[.,!]/g, "").toLowerCase();
const words = cleaned.split(/\s+/);
const freq = {};
for (const word of words) {
if (word) {
freq[word] = (freq[word] || 0) + 1;
}
}
const sorted = Object.keys(freq).sort((a, b) => freq[b] - freq[a]);
return sorted.slice(0, 3);
}