Initialize array (v5)

Revision 5 of this benchmark created on


Description

Fastest way to initialize an array when you know the length and values.

Setup

var len = 10000;

Test runner

Ready to run.

Testing in
TestOps/sec
Loop
var arr = [];

for (i = 0; i < len; i += 1) {
  arr.push(0);
}
ready
Join + split
var arr = new Array(len + 1).join('0').split('').map(parseFloat);
ready
Loop no push
var arr = [];

for (i = 0; i < len; i += 1) {
  arr[i] = 0;
}
ready
Predefined length
var arr = new Array(len);

for (i = 0; i < len; i += 1) {
  arr[i] = 0;
}
ready
While
var arr = new Array(len);

while (--arr >= 0) {
  arr[len] = 0;
}
ready
Recursive Merge
function mkarr(len, acc) {
  if (acc == null) acc = [0];
  if (len <= 1) return acc;
  var b = mkarr(len >> 1, [0]);
  b = b.concat(b);
  if (len & 1) b = b.concat([0]);
  return b;
}
var arr = mkarr(len);
ready
Apply
arr = Array.apply(null, new Array(len)).map(Number.prototype.valueOf,0);
ready

Revisions

You can edit these tests or add more tests to this page by appending /edit to the URL.