I am trying to take an array of strings, and using forEach return a single string containing all the array items. The directions specifically exclude using .join(), which would have been my 1st choice.
// 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;
}
I have tried:
words.forEach(words.join(' ')).push(paragraph);
An alternative to .join is .reduce
here's a quick implementation:
words.reduce((previous, current) => {
return previous + " " + current
})
// will return the words with a space seperating them
alternatively, if you want to do this with pure forEach, you can try
function createParagraph(words){
let paragraph = '';
words.forEach((el, i) => {
paragraph += el
if(i < words.length-1) paragraph += " "
})
return paragraph
}
As per my understanding you want to convert the array into a string without help of JavaScript inbuilt methods. If Yes, Then you are good to go with the Array.forEach method for the iteration of an array and concatenate the elements by using arithmetic symbol.
Live Demo :
// 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));