short array cloning (v72)

Revision 72 of this benchmark created by Greggman on


Preparation HTML

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js">
</script>

Setup

var a = ['h', 'f', 'o', '2', '3', 'i'];
  var b = [];

Teardown



            if (b.length !== a.length) {
    throw {
      message: "Test failed! b.length !== a.length"
    };
  }
  b[0].test = 'hi';
  if (a[0].test === 'hi') {
    //  throw {message: "Not a deep clone"};
  }
  for (var i = 1, l = a.length; i < l; i++) {
    if (b[i] !== a[i]) {
      throw {
        message: "Test failed! b array is " + b
      };
    }
  }
        
  

Test runner

Ready to run.

Testing in
TestOps/sec
slice
b = a.slice();
ready
concat
b = [].concat(a);
ready
for-unshift
b = [];
for (var i = a.length; i--;) {
  b.unshift(a[i]);
}
ready
for-push
b = [];
for (var i = 0, l = a.length; i < l; i++) {
  b.push(a[i]);
}
ready
for-index
b = new Array(a.length);
for (var i = 0, l = a.length; i < l; i++)
  b[i] = a[i];
ready
while loop
var i = a.length;
while (i--) b[i] = a[i];
ready
slice(0)
b = a.slice(0);
ready
a.concat()
b = a.concat()
ready
Array
b = Array.apply(undefined, a);
ready
Map
b = a.map(function(i) {
  return i;
});
ready
Array.prototype.push.apply
b = [];
Array.prototype.push.apply(b, a);
ready
Array.prototype.splice.apply
b = [];
a.unshift(0, 0);
Array.prototype.splice.apply(b, a);
a.splice(0, 2);
ready
for-index []
b = [];
for (var i = 0, l = a.length; i < l; i++)
  b[i] = a[i];
ready

Revisions

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