Answer

Answer

t.me/js_test

Ответ:

function findEvenIndex(arr) {
    const sum = (arr) => arr.reduce((a, v) => a + v, 0);

    for (let i = 1; i < arr.length; i++) {
        if (sum(arr.slice(0, i)) === sum(arr.slice(i + 1))) {
            return i;
        }
    }
    return -1;
}

Объяснение:

Для начала напишем маленькую функцию sum, которая принимает массив и возвращает сумму всех его элементов с помощью метода reduce. Далее в цикле for идём по массиву и на каждом элементе смотри сумму слева и справа с помощью нашей функции sum и метода slice, если сумма равна то возвращаем индекс (i). А если цикл закончился и ничего не вернулось то возвращаем -1.

Код для проверки:

function findEvenIndex(arr) {
    const sum = (arr) => arr.reduce((a, v) => a + v, 0);

    for (let i = 1; i < arr.length; i++) {
        if (sum(arr.slice(0, i)) === sum(arr.slice(i + 1))) {
            return i;
        }
    }
    return -1;
}

console.log(findEvenIndex([1, 2, 3, 4, 3, 2, 1]));
console.log(findEvenIndex([1, 100, 50, -51, 1, 1]));
console.log(findEvenIndex([1, 2, 3, 4, 5, 6]));

Report Page