jsPerf.app is an online JavaScript performance benchmark test runner & jsperf.com mirror. It is a complete rewrite in homage to the once excellent jsperf.com now with hopefully a more modern & maintainable codebase.
jsperf.com URLs are mirrored at the same path, e.g:
https://jsperf.com/negative-modulo/2
Can be accessed at:
https://jsperf.app/negative-modulo/2
stevenbarragan = function(array) {
return array.length == 0 || array.length == 1 ? array : [].concat(
array.shift(),
array.map(function(_, i) {
return array[i].pop();
}),
array.pop().reverse(),
array.map(function(_, i) {
return array[i].shift();
}).reverse(),
stevenbarragan(array)
);
}
haan = function(n) {
var i_snail = function(n, x, y) {
var result = [];
for (var i = x; i <= y; i++) {
result.push(n[x][i]);
}
for (var i = x + 1; i <= y; i++) {
result.push(n[i][y]);
}
for (var i = y - 1; i >= x; i--) {
result.push(n[y][i]);
}
for (var i = y - 1; i >= x + 1; i--) {
result.push(n[i][x]);
}
if (x < y) {
return result.concat(i_snail(n, x + 1, y - 1));
} else {
return result;
}
}
return i_snail(n, 0, n[0].length - 1);
}
liangbo1 = function(_array) {
var resultArray = new Array();
var m1 = 0;
var n1 = 0;
var m2 = 0;
var n2 = _array.length - 1;
var m3 = _array.length - 1;
var n3 = _array.length - 1;
var m4 = _array.length - 1;
var n4 = 0;
while (true) {
for (var i = n1; i < n2; ++i) {
resultArray.push(_array[m1][i]);
}
for (var i = m2; i < m3; ++i) {
resultArray.push(_array[i][n2]);
}
for (var i = n3; i > n4; --i) {
resultArray.push(_array[m3][i]);
}
for (var i = m4; i > m1; --i) {
resultArray.push(_array[i][n4]);
}
++m1;
++n1;
if (_array.length % 2 == 0 && m1 == m3) {
if ((_array.length + 1) % 2 == 0) {
resultArray
.push(_array[_array.length / 2 + 1][_array.length / 2 + 1]);
break;
}
}
++m2;
--n2;
--m3;
--n3;
--m4;
++n4;
if (_array.length % 2 != 0 && m1 == m3) {
resultArray.push(_array[m1][n1]);
break;
}
}
return resultArray;
}
Ready to run.
Test | Ops/sec | |
---|---|---|
stevenbarragan |
| ready |
haan |
| ready |
liangbo1 |
| ready |
You can edit these tests or add more tests to this page by appending /edit to the URL.