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()

RODRIGO MARTINEZ
RODRIGO MARTINEZ
5,912 Points

phoneNumbers is array of 10 digit phone numbers, where the first three digits, in parentheses, are area codes.

Can't get it right. Please help. Excercise " phoneNumbers is array of 10 digit phone numbers, where the first three digits, in parentheses, are area codes. Using reduce, return the total phone numbers with a 503 area code. Store the total in the variable numberOf503."

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((count, number) => {
         if (number.substring(0,4) === '(503)') {
            return count +1;  
         }
         return count;
});

console.log(numberOf503);
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((count, number) => {
         if (number.substring(0,4) === '(503)') {
            return count +1;  
         }
         return count;
});

console.log(numberOf503);

3 Answers

Steven Parker
Steven Parker
229,732 Points

You're pretty close, but:

  • you need an explicit starting value of 0 to begin the "count" with (otherwise it starts with a string)
  • the "substring" needs to have 5 characters instead of 4 to match what it is being compared with
RODRIGO MARTINEZ
RODRIGO MARTINEZ
5,912 Points

Steve, Thanks a lot for the help. I thought that the substring would count the characters from 0 like with the index numbers of an array. Should i always start the count from "0"? In case i 'd set an explicit starting value of "1", would that means that it starts counting from the secnd element in the array? Thanks again

Steven Parker
Steven Parker
229,732 Points

You don't always need an explicit starting value, but in this case you need to because you're counting the items instead of combining their values. And starting a count a 1 would make it too big at the end.

RODRIGO MARTINEZ
RODRIGO MARTINEZ
5,912 Points

thanks again man. You're awesome. Very generous. Thanks for beeing always willing to help.