El programa tiene que juntar todas las letras pero no funciona. He probado con el depurador pero no muestra ningún error. El código:
var phrase = [ 'h', 'e', 'l', 'l', 'o',' ', 'w', 'o', 'r', 'l', 'd' ]; let sentence: string[] = createSentence(phrase); sentence.forEach(letter => { console.log(letter); }); function createSentence(letters: string[]): string[] { var add = ""; var result: string[] = []; phrase.forEach(unionL => { if (unionL != ' ') { add += unionL; } else { result.push(add); add = ""; } }); return result; }No está extrayendo toda la matriz debido a la condición que ha utilizado en su matriz. Debe agregar una condición más para que el último fragmento se agregue a la matriz de resultados. Aquí está el código:
function createSentence(letters: string[]): string[] { var add = ""; var result: string[] = []; phrase.forEach((unionL,index) => { if (unionL != ' ') { add += unionL; } else { result.push(add); add = ""; } //New Code if(index===phrase.length-1){ result.push(add); } }); return result; }Otra forma es mantener su código y simplemente agregar una cadena vacía al final de la cadena que funcionará con su lógica. Ejemplo:
var phrase = [ 'h', 'e', 'l', 'l', ' ', 'w', 'o', 'r', 'l', 'd', ' ' ];