JavaScript JavaScript Array Iteration Methods Combining Array Methods Chaining Array Methods

Rick S
Rick S
10,247 Points

challenge following this track

Not sure why this is setting each member of displayYears to null.

   const years = [1989, 2015, 2000, 1999, 2013, 1973, 2012];
   let displayYears;

   // displayYears should be: ["2015 A.D.", "2013 A.D.", "2012 A.D."]
   // Write your code below

   displayYears = years
       .filter(year => year > 2000) 
       .map (year => {
           year = year.toString();
           year += " A.D.";
           }
         );

I originally was trying year = year.toString() + " A.D.";

4 Answers

Hi Rick!

Because your filter statement is one line, you don't need a return keyword in the arrow function, but because the map function is more than one line (in curly braces), you do.

This should work/pass:

const years = [1989, 2015, 2000, 1999, 2013, 1973, 2012];
let displayYears;

// displayYears should be: ["2015 A.D.", "2013 A.D.", "2012 A.D."]
// Write your code below

displayYears = years.filter(year => year > 2000)
    .map(year => {
        year = year.toString();
        year += " A.D.";
        return year; // This was missing, map wasn't returning anything (hence Nullness!?!)
    });

I hope that helps.

Stay safe and happy coding!

Rick S
Rick S
10,247 Points

I went back to my original attempt at using string interpolation that I failed at prior to trying concatenation.

I realized I left off the return statement, and this was my same problem with the code above.

They both work after this fix. But I also saw in the next video that I could dispense with the brackets and expression after the => and just provide the return value there.

Sorry, just noticed your comment...

My bad... LOL

Rick S
Rick S
10,247 Points

Thanks for the response, though!