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 Using `for in` to Loop Through an Object's Properties

ian izaguirre
ian izaguirre
3,220 Points

Question regarding why some info on Performance using Objects For In Loop was not mentioned in this video?

Hi, after looking at this video, I went on to read a little online about it to help fill in some gaps. Then I noticed a note on performance that seems to be important. It suggested to always use the .hasOwnProperty method when using for-in loops, in order to make sure you loop through the the actual properties key-value pairs your calling and not any of the built-in object/meta-information the parent object has by default.

So I am wondering why something like this would then not be mentioned in this video?

His example of:

var person = {
name : 'Sarah',
age : 35
};

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

Apparently, would have been improved if it was written as:

var person = {
name : 'Sarah',
age : 35
};

for ( var key in person ) {
   if ( person.hasOwnProperty(key) ) {

   console.log( key, ': ', person[key] );
  }
}

Link with more info on Mozilla: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/hasOwnProperty

Also Is this .hasOwnProperty() method something I should always use in for-in loops or should I only use it sometimes?

1 Answer

Jonathan Grieve
MOD
Jonathan Grieve
Treehouse Moderator 90,932 Points

I think it's something that can be incorporated into larger projects. Something to build on when you get further into your JavaScript development journey. But in terms of the scripts you're building in this course I don't think we have too much to worry about in terms of memory drain, unless of course, you make an infinite loop!

It might be worth adding something about it to the teachers notes though for bigger projects if Dave McFarland agrees! :-) But for this course, this is introducing you to the very basics of what loops can do! :-)

ian izaguirre
ian izaguirre
3,220 Points

okay thank you for clearing that up.