snippetjavascriptCritical
How do I loop through or enumerate a JavaScript object?
Viewed 0 times
objecthowenumerateloopthroughjavascript
Problem
I have a JavaScript object like the following:
How do I loop through all of
var p = {
"p1": "value1",
"p2": "value2",
"p3": "value3"
};How do I loop through all of
p's elements (p1, p2, p3...) and get their keys and values?Solution
You can use the
Here is the snippet:
For-of with Object.keys() alternative:
Notice the use of
Using the new
Note: This method is not supported natively by Internet Explorer. You may consider using a Polyfill for older browsers.
for-in loop as shown by others. However, you also have to make sure that the key you get is an actual property of an object, and doesn't come from the prototype.Here is the snippet:
var p = {
"p1": "value1",
"p2": "value2",
"p3": "value3"
};
for (var key in p) {
if (p.hasOwnProperty(key)) {
console.log(key + " -> " + p[key]);
}
}
For-of with Object.keys() alternative:
var p = {
0: "value1",
"b": "value2",
key: "value3"
};
for (var key of Object.keys(p)) {
console.log(key + " -> " + p[key])
}
Notice the use of
for-of instead of for-in, if not used it will return undefined on named properties, and Object.keys() ensures the use of only the object's own properties without the whole prototype-chain propertiesUsing the new
Object.entries() method:Note: This method is not supported natively by Internet Explorer. You may consider using a Polyfill for older browsers.
const p = {
"p1": "value1",
"p2": "value2",
"p3": "value3"
};
for (const [key, value] of Object.entries(p)) {
console.log(${key}: ${value});
}
Context
Stack Overflow Q#684672, score: 5192
Revisions (0)
No revisions yet.