Solución
solution.tsTypeScript
function groupByFirstLetter(words: string[]): Record<string, string[]> {
//step 1: crear objeto donde tendremos cada letra - array (e.g {a: ['alabama']})
const byLetterSet = {}
//filter callback
const filterByFirstLetterMatch = (word: string, letterToComparewith: string) => {
return word.toLowerCase().startsWith(letterToComparewith)
}
//step 2: iterar por palabras, rellenar objeto filtrando
for (let word of words) {
const firstLetterLowerCase = word.at(0).toLowerCase();
if (!byLetterSet[firstLetterLowerCase]) {
byLetterSet[firstLetterLowerCase] = words.filter((w) => filterByFirstLetterMatch(w, firstLetterLowerCase))
}
}
return byLetterSet
}
// No modificar: necesario para evaluar el resultado.
export { groupByFirstLetter };
0respuestas