Javascript - Iterating over Objects in JavaScript Quickly

http://blog.humphd.org/vocamus-1205/?p=1205

by katalin_2003

HTML

<div id="for-in"></div>
<div id="for-loop"></div>

JavaScript

var items = {};
var keys = [];

for (var i = 0; i < 1000; i++) {
    items[i] = i;
    keys.push(i);
}

function forIn(times) {
    for (var t = 0; t < times; t++) {
        var total = 0;
        for (var key in items) {
            if (!items.hasOwnProperty(key)) {
                continue;
            }
            total += items[key];
        }
    }
}

function forLoop(times) {
    for (var t = 0; t < times; t++) {
        var total = 0;
        for (var i = 0, il = keys.length; i < il; i++) {
            total += items[keys[i]];
        }
    }
}

function test(func, times) {
    var startTime = (new Date()).getTime();
    func(times);
    return (new Date()).getTime() - startTime;
}

document.getElementById('for-in').innerHTML = test(forIn, 5000) + " ms";
document.getElementById('for-loop').innerHTML = test(forLoop, 5000) + " ms";