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";