Welcome to the Treehouse Community

The Treehouse Community is a meeting place for developers, designers, and programmers of all backgrounds and skill levels to get support. Collaborate here on code errors or bugs that you need feedback on, or asking for an extra set of eyes on your latest project. Join thousands of Treehouse students and alumni in the community today. (Note: Only Treehouse students can comment or ask questions, but non-students are welcome to browse our conversations.)

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and a supportive community. Start your free trial today.

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,274 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