Как с помощью reduce посчитать сумму положительных и отрицательных чисел в массиве

Как написать функцию, которая бы принимала массив целых чисел (положительные, отрицательные и 0), а на выходе отдавала массив с суммой всех положительных чисел и суммой всех отрицательных чисел ? С использованием reduce Пример: [ 0, 1, 0, -6, 2, 3, -2, 0, -3, -4 ] -> [ -15, 6 ]


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

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

Передайте в качестве начального значения массив с нулями, а далее суммируйте с нужным элементом на основе условий:

let arr = [0, 1, 0, -6, 2, 3, -2, 0, -3, -4].reduce(
  (a, c) => {
    if (c < 0) a[0] = a[0] + c;
    if (c > 0) a[1] = a[1] + c;
    return a;
  },
  [0, 0]
);

console.log(arr);

→ Ссылка
Автор решения: Pavel Nazarian

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

let new_arr = arr.reduce((a,c) => {    
  a[+(c>0)] += c;  
  return a;
},[0,0]) 

console.log(new_arr);

→ Ссылка