Estoy tratando de tomar una matriz de cadenas y usar forEach devuelve una sola cadena que contiene todos los elementos de la matriz. Las instrucciones excluyen específicamente el uso de .join(), que habría sido mi primera opción.
// This is a list of words let words = ['Loops', 'are', 'a', 'great', 'way', 'to', 'find', 'elements', 'in', 'an', 'array']; // TODO: implement this function to return a string containing all words in a paragraph. function createParagraph(words) { let paragraph = ''; return paragraph; } // Prints paragraph to console console.log(createParagraph(words)); // don't change this line if (typeof module !== 'undefined') { module.exports = createParagraph; }Yo he tratado:
words.forEach(words.join(' ')).push(paragraph);Una alternativa a .join es .reduce
aquí hay una implementación rápida:
words.reduce((previous, current) => { return previous + " " + current }) // will return the words with a space seperating themalternativamente, si quiere hacer esto con forEach puro, puede probar
function createParagraph(words){ let paragraph = ''; words.forEach((el, i) => { paragraph += el if(i < words.length-1) paragraph += " " }) return paragraph }Según tengo entendido, desea convertir la matriz en una cadena sin la ayuda de los métodos incorporados de JavaScript. En caso afirmativo, puede utilizar el método Array.forEach para la iteración de una matriz y concatenar los elementos mediante el uso de símbolos aritméticos.
Demostración en vivo :
// This is a list of words let words = ['Loops', 'are', 'a', 'great', 'way', 'to', 'find', 'elements', 'in', 'an', 'array']; // Function which returns a string containing all words in a paragraph. function createParagraph(words) { let paragraph = ''; words.forEach(word => { paragraph += (words[words.length - 1] !== word) ? word += " " : word }); return paragraph; } // Prints paragraph to console console.log(createParagraph(words));