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?
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With