# JS: Balanced Index

Given an array of numbers, find the index where the sums are balanced to the left and right of it.

const balancedIndex = (array) => {

}

ex —

input: [1, 2, 5, 3]

output: 2 — to the right of index 2 is 3 and to the left of index 2 is 1 and 2 (equates to 3). *If theres is no balanced index, our output will be -1*

What to keep in mind? A few questions I asked myself before tackling this problem. How will I achieve the total sum to the right of my index? Totaling all of the numbers in the inputted array first will help me achieve this— following that, I will loop through the array and subtract the values of each iteration against the total.

const balancedIndex = (array) => {

let total = array.reduce((a,b) => a + b);

for (let i = 0; i < array.length; i++) {

// subtract the total with the current value of array[i]

total = total - array[i];

}

// if there is no balanced index, return -1

return -1;

};

balancedIndex([1, 2, 5, 3]);

Each iteration will look like this:**i : total**

0 : 10

1 : 8

2 : 3

3 : 0

How can I successfully compare the sum of the left of the index against the right? During each iteration, I will keep track of the sum to the left.

const balancedIndex = (array) => {

let total = array.reduce((a,b) => a + b);

let sumLeft = 0;

for (let i = 0; i < array.length; i++) {

total = total - array[i];

//compares the sum to the left of current index against total

if (sumLeft === total) {

// if the sums match, the current index will be returned

return i;

}

sumLeft += array[i];

}

return -1;

};

balancedIndex([1, 2, 5, 3]);// output: 2

Each iteration will look like this:**i : total : sumLeft**

0 : 10 : 1

1 : 8 : 3

2 : 3

The total and sumLeft is being checked *before*** **sumLeft += array[i] is ran because the numbers to the right of the index needs to subtract the value of the current index for an accurate comparison.