кстати, можно переиспользовать переданный массив, чтобы не понадобился вспомогательный
function waysToMakeFair(arr) {
if (!arr || !arr.length) {
return 0;
}
let fullDelta = 0;
for (let i = 0; i < arr.length; ++i) {
fullDelta += i % 2 ? -arr[i] : arr[i];
arr[i] = fullDelta;
}
let count = 0;
for (let i = 0; i < arr.length; ++i) {
const prevDelta = i > 0 ? arr[i - 1] : 0
const nextDelta = fullDelta - arr[i]
if (prevDelta - nextDelta === 0) {
count++
}
}
// восстанавливаем стартовые значения
for (let i = arr.length - 1; i > 0; --i) {
arr[i] = i % 2 ? -arr[i] + arr[i-1] : arr[i] - arr[i-1];
}
return count
}