Welcome to the Treehouse Community
Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.
Looking to learn something new?
Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.
Start your free trialLiam Hayes
Full Stack JavaScript Techdegree Student 13,116 PointsArray Flattening Code Challenge
Not sure whatsoever how to solve this, would love some help or hints. Thank you very much :)
Challenge Task 1 of 1
Using reduce method, flatten the customerNames array of arrays. In other words, take all the names from each array inside customerNames and place them in one big array. Store the flattened array in the flattenedCustomerNames variable. You can use the array in the comments below for reference.
const customerNames = [
[ "John", "Sandy", "Tyrone", "Elizabeth", "Penny" ],
[ "Barry", "Wanda", "Jamal", "Hayden" ],
[ "Portia", "Pam", "Philip" ]
];
let flattenedCustomerNames;
// flattenedCustomerNames should be: ["John", "Sandy", "Tyrone", "Elizabeth", "Penny", "Barry", "Wanda", "Jamal", "Hayden", "Portia", "Pam", "Philip"]
// Write your code below
2 Answers
Evaldas Burlingis
7,020 PointsOne of the simplier ways to solve this would be make empty array of flattenedCustomerNames and then with for loop to fill it with customerNames array.
ANSWER BELOW
const customerNames = [
[ "John", "Sandy", "Tyrone", "Elizabeth", "Penny" ],
[ "Barry", "Wanda", "Jamal", "Hayden" ],
[ "Portia", "Pam", "Philip" ]
];
let flattenedCustomerNames;
// flattenedCustomerNames should be: ["John", "Sandy", "Tyrone", "Elizabeth", "Penny", "Barry", "Wanda", "Jamal", "Hayden", "Portia", "Pam", "Philip"]
// Write your code below
flattenedCustomerNames = [];
for(let i = 0; i < customerNames.length; i++){
flattenedCustomerNames = flattenedCustomerNames.concat(customerNames[i]);
}
console.log(flattenedCustomerNames);
ANSWER TO PASS YOUR CHALLENGE
flattenedCustomerNames = customerNames.reduce((acc, cu) => acc.concat(cu), []);
Very well written article about reduce and when to use it: https://medium.freecodecamp.org/reduce-f47a7da511a9
To read more about reduce method : https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce
Muhammad Anwar Ul Haq
Full Stack JavaScript Techdegree Graduate 18,781 PointsflattenedCustomerNames = customerNames.reduce ((innerNames, names ) => innerNames.concat(names), [] );
Liam Hayes
Full Stack JavaScript Techdegree Student 13,116 PointsLiam Hayes
Full Stack JavaScript Techdegree Student 13,116 PointsAmazing answer, thank you very much bro :)