for...in

for...in is not foreach.

by EisenbergEffect

HTML

<script src="https://getfirebug.com/firebug-lite-debug.js"></script>

JavaScript

//Use for objects, not arrays.

var person = {
    firstName:"Rob",
    lastName:"Eisenberg",
    sayHello:function(){
        console.log("Hello, my name is " + this.firstName + " " + this.lastName + ".");
    }
};
   
console.log("Object key iteration.");
for(var key in person){
    if(person.hasOwnProperty(key)){
        console.log(key + ": " + person[key]);
    }
}

var someArray = [1,2];
someArray[5] = 23;

console.log("\nBad array iteration");
for(var key in someArray){
    console.log(key + ":", someArray[key]);
}

console.log("\nGood array iteration");
for(var i = 0, length = someArray.length; i < length; i++) {
    console.log(i, someArray[i]);
}