From: Ted Young <t...@radicaldesigns.org>
Date: Tue, 30 Oct 2012 16:35:43 -0700
Local: Tues, Oct 30 2012 7:35 pm
Subject: Re: [nodejs] Re: somewhat OT: creating a lookup hash in JS
var MAX = 1000000;
for(i = 0; i < MAX; i++){
}
start = Date.now();
arr.reduce(function(obj2,i){ obj2[i] = true; return obj2; },obj2);
console.log('reduce',Date.now() - start);
start = Date.now();
});
console.log('forEach',Date.now() - start);
var MAX = 1000000; var arr = [], obj = {}, obj2 = {},foo, start; for(i = 0; i < MAX; i++){
}
start = Date.now();
arr.reduce(function(obj2,i){ obj2[i] = true; return obj2; },obj2);
console.log('reduce',Date.now() - start);
start = Date.now();
});
console.log('forEach',Date.now() - start);
var MAX = 1000000; var arr = [], obj = {}, obj2 = {},foo, start; for(i = 0; i < MAX; i++){
}
start = Date.now();
arr.reduce(function(obj2,i){ obj2[i] = true; return obj2; },obj2);
console.log('reduce',Date.now() - start);
start = Date.now();
});
console.log('forEach',Date.now() - start);
A quick speed test, comparing forEach and reduce: var arr = [], obj = {}, obj2 = {}, start;
for(i = 0; i < MAX; i++){
}
// test reduce
start = Date.now(); arr.reduce(function(obj,i){ obj[i] = true; return obj; },obj);
console.log('reduce',Date.now() - start);
// test forEach
});
console.log('forEach',Date.now() - start);
var MAX = 1000000; var arr = [], obj = {}, obj2 = {},foo, start; for(i = 0; i < MAX; i++){
}
start = Date.now();
arr.reduce(function(obj2,i){ obj2[i] = true; return obj2; },obj2);
console.log('reduce',Date.now() - start);
start = Date.now();
});
console.log('forEach',Date.now() - start);
var MAX = 1000000; var arr = [], obj = {}, obj2 = {},foo, start; for(i = 0; i < MAX; i++){
}
start = Date.now();
arr.reduce(function(obj2,i){ obj2[i] = true; return obj2; },obj2);
console.log('reduce',Date.now() - start);
start = Date.now();
});
console.log('forEach',Date.now() - start);
results are:
in node:
in node if you reverse the order:
in firefox:
reversed in firefox:
If this is for the browser, reduce seems twice as fast in firefox. In node they appear equivalent. forEach is about as concise as it gets, but hey, one line of code ain't bad. :)
Ted
On Oct 30, 2012, at 3:36 PM, Felipe Mobus <fmo...@gmail.com> wrote:
> You could use ES5's array.reduce() method, but it's gonna be a bit ugly
> [1,2,3,4,5,6,7,8].reduce(function(prev, cur) {
> On Tue, Oct 30, 2012 at 8:25 PM, mscdex <msc...@gmail.com> wrote:
>> Does this help?: https://github.com/joyent/node/wiki/ECMA-5-Mozilla-Features-Implement...
>> --
> -- > -- You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
| ||||||||||||||