function singNameGame(name) { // normalize name name = name.toLowerCase(); name = name[0].toUpperCase() + name.slice(1); // ... and sometimes y // let's pray this works let firstVowelPos = (function() { let vowels = 'aeiouàáâãäåæèéêëìíîïòóôõöøùúûüāăąēĕėęěĩīĭįıijōŏőœũūŭůűų' .split(''); function isVowel(char) { return vowels.indexOf(char) >= 0; } if (isVowel(name[0].toLowerCase())) return 0; if (name[0] == 'Y' && !isVowel(name[1])) return 0; if (name[0] == 'Y' && isVowel(name[1])) return 1; vowels = vowels.concat(vowels, 'yÿý'.split('')); for (let i = 1; i < name.length; i++) if (isVowel(name[i])) return i; })(); let init = name[0].toLowerCase(), trunk = name.slice(firstVowelPos).toLowerCase(), b = trunk, f = trunk, m = trunk; switch (init) { case 'b': f = 'f' + trunk; m = 'm' + trunk; break; case 'f': b = 'b' + trunk; m = 'm' + trunk; break; case 'm': b = 'b' + trunk; f = 'f' + trunk; break; default: b = 'b' + trunk; f = 'f' + trunk; m = 'm' + trunk; } return `
${name}, ${name}, bo-${b}
Banana-fana fo-${f}
Fee-fi-fo-mo-${m}
${name}!