Script Preparation code:
x
 
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;
}
Tests:
  • function 1

     
    test1([1, 5, -8, 0, -2]);
    test1([-2, 2, 5]);
    test1([1, 1, 1, 1, -4]);
  • function 2

     
    test2([1, 5, -8, 0, -2]);
    test2([-2, 2, 5]);
    test2([1, 1, 1, 1, -4]);
Rendered benchmark preparation results:

Suite status: <idle, ready to run>

Previous results

Experimental features:

  • Test case name Result
    function 1
    function 2

    Fastest: N/A

    Slowest: N/A

Latest run results:
Run details: (Test run date: 2 years ago)
Mozilla/5.0 (Windows NT 6.3; Win64; x64; rv:103.0) Gecko/20100101 Firefox/103.0
Firefox 103 on Windows 8.1
View result in a separate tab
Test name Executions per second
function 1 428923.5 Ops/sec
function 2 2408855.2 Ops/sec