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

Ian Valentine
Ian Valentine
5,396 Points

Accessing object properties

Why is my code for this exercise not working? The question is:

Now that you are logging out the property names, include the property values too. In other words you want to log out 4 lines that include both the property name and value. For example: "population: 1435e6"

Any ideas?

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

for (var prop in shanghai) {
  console.log(shanghai[prop.name] + ": " + shanghai[prop]);
};
index.html
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>JavaScript Objects</title>
</head>
<body>
<script src="script.js"></script>
</body>
</html>
Ian Valentine
Ian Valentine
5,396 Points

I just found a related question with a working solution. Still not sure why my solution doesn't work though.

1 Answer

It looks like the for-in loop may be causing your problems. Try this for the for-in loop:

for (var prop in shanghai) { console.log (prop, ': ', shanghai[prop]); }

This will have the for in loop print out each prop name (population, longitude, latitude,country) and the associated prop value for the object shanghai (14.35e6,31.2000N, 121.5000E, and CHN). The loop will cycle through the property names for the object Shanghai automatically and you do not need to call this out again within the for loop. That is taken care when you declare the variable key in object (for (var prop in shanghai).

Hope this helps, Mindy

Ian Valentine
Ian Valentine
5,396 Points

Got it — this worked and makes sense. Thanks very much!