Можно ли остановить метод reduce()?

Можно ли остановить метод reduce()? Считаю через reduce() сумму чисел, но можно ли остановить перебор когда значение в массиве будет 0. Например есть самив arr = [1, 2, 5, 0, 4, 5, 6]; когода дошло до 0 вивести сумму 8, значения после нуля не считать

let arr = [1, 2, 5, 0, 4, 5, 6];

const sum = arr.reduce((total, amount) => total + amount); 

console.log(sum);


Ответы (1 шт):

Автор решения: Igor

let arr = [1, 2, 5, 0, 4, 5, 6];

const sum = arr.reduce((acc, amount) => {
  if (amount == 0)
    acc.skip = true;
  if (!acc.skip)
    acc.total += amount;
  return acc;
}, { skip: false, total: 0 }).total; 

console.log(sum);

→ Ссылка