From f1711ddd4c98633f059558b8d13e2532afbb5ba7 Mon Sep 17 00:00:00 2001 From: Raphael Nascimento Date: Tue, 6 Oct 2015 23:44:30 -0300 Subject: [PATCH] [javascript/en] Added for/in loop JavaScript more explanation about for/in java script. --- javascript.html.markdown | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/javascript.html.markdown b/javascript.html.markdown index 3308b08d..f7a662a4 100644 --- a/javascript.html.markdown +++ b/javascript.html.markdown @@ -218,13 +218,26 @@ for (var i = 0; i < 5; i++){ // will run 5 times } -//The For/In statement loops through the properties of an object: +//The For/In statement loops iterates over every property across the entire prototype chain var description = ""; var person = {fname:"Paul", lname:"Ken", age:18}; for (var x in person) { description += person[x] + " "; } +//If only want to consider properties attached to the object itself, +//and not its prototypes use hasOwnProperty() check +var description = ""; +var person = {fname:"Paul", lname:"Ken", age:18}; +for (var x in person) { + if( person.hasOwnProperty( x ) ) { + description += person[x] + " "; + } +} + +//for/in should not be used to iterate over an Array where the index order is important. +//There is no guarantee that for/in will return the indexes in any particular order + // && is logical and, || is logical or if (house.size == "big" && house.colour == "blue"){ house.contains = "bear";