Я пытаюсь решить эту задачу, когда функция должна возвращать значение индекса элемента, когда сумма значений с обеих сторон элемента равна. Например, [1,2,3,4,3,2,1] должен вернуть 3, так как по другую сторону от «4» значения складываются с 6 (1 + 2 + 3) и (3 + 2 + 1). Также, если такого значения нет, функция должна вернуть -1.
function findEvenIndex(arr) {
arr.forEach((element, index) => {
let a = arr.splice(index + 1, arr.length); //array of values after current value
let b = arr.splice(arr[0], index); //array of values before current value
let suma = a.reduce((accumulator, currentValue) => { //Sum of array of after values
return accumulator + currentValue;
}, 0);
let sumb = b.reduce((accumulator, currentValue) => { //Sum of array of before values
return accumulator + currentValue;
}, 0);
if (suma === sumb) { //comparing the two sums to check if they are equal
return index;
};
});
};
Насколько я понимаю, если suma и sumb НЕ равны, то начнется следующая итерация forL oop, однако этого не происходит, и я не могу понять, почему.
Функция должна вернуть -1, если такого значения не существует, я не реализовал эту часть кода в настоящее время.
Спасибо