Object.keys
I adore JavaScript objects. Love them. You're probably asking "well, why don't you marry them?" Trust me: if I could, I would. Arrays are nice and all but object keys provide another level of structure and information that is invaluable. For example, it's much faster search an object for a key than it is to search an array for value presence.
The way we've always iterated on an Object
instance was always a for
loops with a hasOwnProperty
check which was ugly; Object.keys
(not Object.prototype.keys
) provides an array of Object properties!
var person = {
firstName: 'David',
lastName: 'Walsh',
// ...
};
Object.keys(person).forEach(function(trait) {
console.log('Person ', trait,': ', person[trait]);
});
If you work with JSON or simply raw JavaScript objects, and you haven't been using Object.keys
, now is the time to ditch the old method for this elegant solution!
![Being a Dev Dad]()
I get asked loads of questions every day but I'm always surprised that they're rarely questions about code or even tech -- many of the questions I get are more about non-dev stuff like what my office is like, what software I use, and oftentimes...
![Convert XML to JSON with JavaScript]()
If you follow me on Twitter, you know that I've been working on a super top secret mobile application using Appcelerator Titanium. The experience has been great: using JavaScript to create easy to write, easy to test, native mobile apps has been fun. My...
![iPad Detection Using JavaScript or PHP]()
The hottest device out there right now seems to be the iPad. iPad this, iPad that, iPod your mom. I'm underwhelmed with the device but that doesn't mean I shouldn't try to account for such devices on the websites I create. In Apple's...
![Basic AJAX Requests Using MooTools 1.2]()
AJAX has become a huge part of the modern web and that wont change in the foreseeable future. MooTools has made AJAX so simple that a rookie developer can get their dynamic pages working in no time.
Step 1: The XHTML
Here we define two links...
Why don’t you use this:
@Franz,
for..in iterating over NON own properties.
Not very well supported http://caniuse.com/#feat=let
Obligatory https://babeljs.io/
Also would iterate over prototype properties.
The
for each...in
statement is deprecated as the part of ECMA-357 (E4X) standard. E4X support has been removed, butfor each...in
will not be disabled and removed because of backward compatibility considerations. Consider usingfor...of
instead. (Please refer to bug 791343.)Also: Use
const
, not let. The loop creates a new context in each iteration, the loop variable therefore is constant unless your loop-code changes it.