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 trial

JavaScript JavaScript Array Iteration Methods Array Manipulation Practice reduce()

.reduce

How do I complete this challenge.Thanks

app.js
const phoneNumbers = ["(503) 123-4567", "(646) 123-4567", "(503) 987-6543", "(503) 234-5678", "(212) 123-4567", "(416) 123-4567"];
let numberOf503;

// numberOf503 should be: 3
// Write your code below

numberOf503 = phoneNumbers.reduce( (acc, number)=> {
  if(number === subString(503){
        return number;
     }0
})

1 Answer

Jeff Muday
MOD
Jeff Muday
Treehouse Moderator 28,720 Points

You're pretty close to an answer, lets work on that!

You had a little difficulty with syntax. I'll explain as we go along.

The example tests whether you can do counting of the string '(503)'. And, we are going to test each number. You could have easily used a regex, but I will use a SLICE of the array since you would know this.

This answer is a little verbose, but should illustrate the example.

numberOf503 = phoneNumbers.reduce( (acc, number) => {
  // here's where we look for (503)
  if ( number.slice(0,5) === '(503)' ) {
    return acc + 1; // we found a 503, increment the acc.
  } else {
    return acc; //we did not find a 503, skip incrementing
  }
}, 0); // make sure to use an initial value of acc = 0