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
<script>
function sumDigitsReduce(number) {
return Math.abs(number).toString().split('').reduce(function(a,b){return +a + +b}, 0);
}
function sumDigitsReduceParseInt(number) {
return number.toString().split("").reduce(function(sum,n) {
return n === '-' ? sum : sum+parseInt(n);
},0);
}
function sumDigitsForEach(number) {
var str_num = "" + number;
var result = 0;
str_num.split('').forEach(function(el) {
var digit = parseInt(el);
if(isNaN(digit)) {
return;
}
result += digit;
});
return result;
}
function sumDigitsMod(number) {
var i = 0;
var sum = 0;
number = Math.abs(number)
while(number != 0)
{
sum += number % 10
number = Math.floor(number/10)
}
return sum
}
function sumDigitsString(number) {
number = Math.abs( number ).toString();
var sum = 0;
for ( var i = 0; i < number.length; ++i )
sum += parseInt( number[ i ] );
return sum;
}
function sumDigitsPow(number) {
var sum = 0;
number = Math.abs(number);
for (var i=number.toString().length-1; i>=0; i--) {
var digit = Math.floor(number/(Math.pow(10,i)));
sum += digit;
number -= digit * (Math.pow(10,i));
}
return sum;
}
</script>
Ready to run.
Test | Ops/sec | |
---|---|---|
sumDigitsReduce |
| ready |
sumDigitsReduceParseInt |
| ready |
sumDigitsForEach |
| ready |
sumDigitsMod |
| ready |
sumDigitsString |
| ready |
sumDigitsPow |
| ready |
You can edit these tests or add more tests to this page by appending /edit to the URL.