curriculum/challenges/english/blocks/daily-coding-challenges-javascript/68adce01c0e1144d0a90295e.md
Given a string containing one or more words, return an acronym of the words using the following constraints:
a, for, an, and, by, and of.buildAcronym("Search Engine Optimization") should return "SEO".
assert.equal(buildAcronym("Search Engine Optimization"), "SEO");
buildAcronym("Frequently Asked Questions") should return "FAQ".
assert.equal(buildAcronym("Frequently Asked Questions"), "FAQ");
buildAcronym("National Aeronautics and Space Administration") should return "NASA".
assert.equal(buildAcronym("National Aeronautics and Space Administration"), "NASA");
buildAcronym("Federal Bureau of Investigation") should return "FBI".
assert.equal(buildAcronym("Federal Bureau of Investigation"), "FBI");
buildAcronym("For your information") should return "FYI".
assert.equal(buildAcronym("Light Amplification by Stimulated Emission of Radiation"), "LASER");
buildAcronym("By the way") should return "BTW".
assert.equal(buildAcronym("By the way"), "BTW");
buildAcronym("An unstoppable herd of waddling penguins overtakes the icy mountains and sings happily") should return "AUHWPOTIMSH".
assert.equal(buildAcronym("An unstoppable herd of waddling penguins overtakes the icy mountains and sings happily"), "AUHWPOTIMSH");
function buildAcronym(str) {
return str;
}
function buildAcronym(str) {
const smallWords = ["a", "for", "an", "and", "by", "of"];
const words = str.split(" ");
let acronym = "";
for (let i = 0; i < words.length; i++) {
const word = words[i];
const lowerWord = word.toLowerCase();
if (i === 0 || !smallWords.includes(lowerWord)) {
acronym += word[0].toUpperCase();
}
}
return acronym;
}