There are many ways to iterate an object in javascript. This post shows few most popular way of iterating an object in javascript
Initialize
Consider following is the object we are going to work with in our example. Objects in javascript does not maintain the insertion order. Insertion order is not maintained while iteration for Objects.
var person = {};
person.firstName = "John";
person["lastName"] = "Taylor";
person.country = "Canada";
Method 1 : Using for…in statement
for...in
iterates over enumerable property of an object. It is a good idea to check whether enumerable property belongs to object’s own property or not ? Otherwise for…in loop will iterate over Object’s Prototype property as well.
for(var key in person) {
if(person.hasOwnProperty(key))
{
console.log(key +" - "+ person[key]);
}
}
// Output
firstName - John
lastName - Taylor
country - Canada
Method 2 : Using forEach statement
This method is a combination of Object.keys()
and Array.prototype.forEach()
Object.keys(person).forEach(function(key, index) {
console.log(index + ": "+ key +" - "+ person[key]);
});
// Output
0: firstName - John
1: lastName - Taylor
2: country - Canada
Method 3 : Using $.each() in jQuery
$.each() method is provided by jQuery Library.
$.each(person, function(key, value) {
console.log(key +" - "+ value);
});
// Output
firstName - John
lastName - Taylor
country - Canada
Method 4 : Using _.each() in Underscore.js
_.each() method is provided by Underscore.js Library.
_.each(person, function(value, key) {
console.log(key +" - "+ value);
});
// Output
firstName - John
lastName - Taylor
country - Canada
Method 5 : Using _.forIn() in Lodash.js
_.forIn() method is provided by Lodash Library. _.forIn()
can iterate over object’s prototype property as well.
_.forIn(person, function(value, key) {
if(person.hasOwnProperty(key))
{
console.log(key +" - "+ value);
}
});
// Output
firstName - John
lastName - Taylor
country - Canada
Method 6 : Using _.forOwn() in Lodash.js
_.forOwn() method is provided by Lodash Library. _.forOwn()
can iterate over object’s own property only. It will skip the Object’s inherited properties.
_.forOwn(person, function(value, key) {
console.log(key +" - "+ value);
});
// Output
firstName - John
lastName - Taylor
country - Canada