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 Loops, Arrays and Objects Tracking Data Using Objects Accessing All of the Properties in an Object

Abdullah Al Faruk
PLUS
Abdullah Al Faruk
Courses Plus Student 3,270 Points

How to do that?

Help please

script.js
var shanghai = {
  population: 14.35e6,
  longitude: '31.2000 N',
  latitude: '121.5000 E',
  country: 'CHN'
};

for(prop in shanghai){
   console.log(prop);
}
index.html
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>JavaScript Objects</title>
</head>
<body>
<script src="script.js"></script>
</body>
</html>

2 Answers

Ari Misha
Ari Misha
19,323 Points

Hiya there!! You see the issue lies with your local "prop" variable , in your "for-in" loop. When JS interpreter gets to your "prop" variable , it'll assume that you've this "prop" variable defined somewhere in your script , maybe in Global scope , so it went out and searched for "prop" variable and it couldnt find one. When you're defining a new variable just put "var" before the variable name and JS interpreter will know that you're defining it for the first time and it'll define its scope and will connect all the dots. But overall , your code in on point , you're just missing that "var" definition for local variable/alias "prop".

I hope it helped! (:

Maxime Duhamel
Maxime Duhamel
7,169 Points

Hi, You will need to store the iteration in a variable for the loop to run correctly.

for (var prop in shanghai) { console.log(prop); }

If it still confusing for you make sure to watch those videos again. The concept can be a bit difficult to get your head around but with a bit of practice it will be second nature and very useful.

I hope it helps.

Max