Reverse string
JavaScript performance comparison
Preparation code
<script>
var str = 'abcdefghijklmnopqrstuvwxyz';
function str_reverse1(str) {
return str.split('').reverse().join('');
}
function str_reverse2(str) {
var result = '',
length = str.length;
while (length--) {
result += str[length];
}
return result;
}
function str_reverse3(str) {
var result = [],
length = str.length,
pad = length;
while (length--) {
result[pad - length] = str[length];
}
return result.join('');
}
function str_reverse4(str) {
var curr, result = str.split('');
for (var i = 0, j = result.length - 1; i < j; i++, j--) {
curr = result[i];
result[i] = result[j];
result[j] = curr;
}
return result.join('');
}
function str_reverse5(str) {
var length = str.length,
result = [];
while (length--) {
result.push(str[length]);
}
return result.join();
}
function str_reverse6(str) {
var length = str.length,
pad = length,
result = new Array(length);
while (length--) {
result[pad - length] = str[length];
}
return result.join('');
}
function str_reverse7(str) {
var tmp = '';
for (var i = str.length - 1; i >= 0; i--) {
tmp += str[i];
}
return tmp;
}
</script>
Test runner
Warning! For accurate results, please disable Firebug before running the tests. (Why?)
Java applet disabled.
| Test | Ops/sec | |
|---|---|---|
str.split('').reverse().join('') |
|
pending… |
str_reverse2(str) |
|
pending… |
str_reverse3(str) |
|
pending… |
str_reverse4(str) |
|
pending… |
str_reverse5(str) |
|
pending… |
str_reverse6(str) |
|
pending… |
str_reverse7(str) |
|
pending… |
Compare results of other browsers
Revisions
You can edit these tests or add even more tests to this page by appending /edit to the URL. Here’s a list of current revisions for this page:
- Revision 1: published by Mathias Bynens
- Revision 3: published by ShiningRay
- Revision 4: published by Adam Drago
- Revision 5: published
- Revision 6: published
0 comments