Solución
solution.tsTypeScript
export function topNWords(text: string, n: number): string[] {
if ( n > text.length ) return text.split('');
const uniqueWordsMap: Map<string, number>= new Map()
text.split(' ').map(word => word.toLocaleLowerCase()).forEach(word=> uniqueWordsMap.set(word, (((word: string)=> {return uniqueWordsMap.has(word) ? (Number(uniqueWordsMap.get(word)) + 1) : 1})(word))) )
const wordsFrecuency = Array.from(uniqueWordsMap)
const sortedWordsFrecuency =wordsFrecuency.sort((a, b )=> {
const substractionResult = b[1] - a[1]
//empate
if(substractionResult === 0 ){
const alfabeticSort = ([a[0], b[0]].sort())
if(alfabeticSort[0]=== a[0]){
return -1
}
return 1
}
return substractionResult
})
console.log(sortedWordsFrecuency)
return sortedWordsFrecuency.splice(0, n).map(tuple => tuple[0]);
}0respuestas