Test name | Executions per second |
---|---|
function 1 | 428923.5 Ops/sec |
function 2 | 2408855.2 Ops/sec |
function test1(array) {
for (let i = 0; i < array.length; i++) {
let lsum = array.slice(0, i).reduce((carry, value) => carry + value, 0);
let rsum = array.slice(i).reduce((carry, value) => carry + value, 0);
if (lsum === rsum) return i;
}
return -1;
}
function test2(array) {
let sum = array.reduce((carry, value) => carry + value, 0);
for (let i = 0, lsum = 0, rsum = sum; i < array.length; i++, lsum += array[i - 1], rsum -= array[i - 1]) {
if (lsum === rsum) {
return i;
}
}
return -1;
}
test1([1, 5, -8, 0, -2]);
test1([-2, 2, 5]);
test1([1, 1, 1, 1, -4]);
test2([1, 5, -8, 0, -2]);
test2([-2, 2, 5]);
test2([1, 1, 1, 1, -4]);