O ponto chave é a separação das palavras. Além disso, o desafio facilita ao deixar claro que a string deve ficar toda minúscula e que conterá apenas letras sem acento e espaços.
Para conseguir inverter apenas as letras das palavras separadamente precisamos que elas sejam separadas e o método split pode nos ajudar com isso. Até agora usamos ele para separar todos os caracteres, mas também podemos fazer ele dividir uma string usando caracteres específicos como o espaço " ":
function invertWords(str) { const wordsArray = str.split(' ')
const invertedWords = wordsArray.map(word => {
const lowerCaseWord = word.toLowerCase()
return lowerCaseWord.split('').reverse().join('')
})
return invertedWords.join(' ')
}
Como sempre, podemos encadear as funções. Além disso, também podemos deixar nosso código mais organizado ao criar uma função específica para inverter uma palavra e passar ela como callback ao invés de declarar a função inline:
function invertWord(word) {
return word.toLowerCase().split('').reverse().join('')
}
function invertWords(str) {
return str.split(' ').map(invertWord).join(' ')
}