Friday, 11 November 2016

display object properties using for/in loop javascript





below is a simple samlple, i wanna display the object properties using for/in loop



var Object = { x:1, y:2, z:3 };
for (property in Object) {
console.log(Object.property);

};


it shows undefined.



but if using console.log(Object[property]); it works, and shows 1 2 3



why i cannot use Object.property to display in for/in loop?


Answer



This has to do with notation and syntax




Object.property will give you undefined because you're accessing the property with the name property.



If you have this object:



var o = {
property: "value",
value: "foo"
};


o.property; // "value"
o["property"]; // "value" (equivalent)
o.value; // "foo"
o["value"]; // "foo" (equivalent)
o[o.property]; // "foo" no other notation possible


So in:



var Object = { x:1, y:2, z:3 };

for (property in Object) {
console.log(Object.property);
};


The value of property is "x", "y" and then "z". But Object.property is equivalent to Object["property"]. Whereas Object[property] gives you Object["x"] etc.


No comments:

Post a Comment