JavaScript JavaScript Array Iteration Methods Combining Array Methods Nested Data

Aziz Kemal HOSCAN
seal-mask
.a{fill-rule:evenodd;}techdegree seal-36
Aziz Kemal HOSCAN
Full Stack JavaScript Techdegree Graduate 16,113 Points

About reduce method

Well I am following the previous examples but still cant solve the problem. I first use map method to get the hobbies arrays and then use reduce method to flatten arrays into one big array as we saw in the previous examples but I get an error of innerhobbie is not iterable. I believe that after the map method I get an array of arrays and then use reduce on that array of arrays.

Please help

app.js
const customers = [
  {
    name: "Tyrone",
    personal: {
      age: 33,
      hobbies: ["Bicycling", "Camping"]
    }
  },
  {
    name: "Elizabeth",
    personal: {
      age: 25,
      hobbies: ["Guitar", "Reading", "Gardening"]
    }
  },
  {
    name: "Penny",
    personal: {
      age: 36,
      hobbies: ["Comics", "Chess", "Legos"]
    }
  }
];
let hobbies;

// hobbies should be: ["Bicycling", "Camping", "Guitar", "Reading", "Gardening", "Comics", "Chess", "Legos"]
// Write your code below
hobbies = customers.map(customer => customer.hobbies).reduce((arr, innerhobbie) => [...arr, ...innerhobbie], []);

1 Answer

Sean T. Unwin
Sean T. Unwin
28,656 Points

In the map() refactor to customer => customer.personal.hobbies -- forgot to add .personal before .hobbies.