i'm stucked with a simple logic, i have an array as a result that contains positive and negative numbers.
what i need is to sum both negative and positive and print a result
const arr = ['-8', '-3', '1', '-4', '0']
// expected results = -14
what i've tried so far is to separate negative and positive with:
const positive = scores.filter(posNumber => posNumber >= 0)
const negative = scores.filter(negNumber => negNumber < 0)
but if i perform a reduce on positive i get "010" as a result....
Those are strings. You need to convert them to Numbers first:
const arr = ['-8', '-3', '1', '-4', '0'].map(Number);
const positive = arr.filter(posNumber => posNumber >= 0);
const negative = arr.filter(negNumber => negNumber < 0);
const positiveSum = positive.reduce((sumSoFar, current) => sumSoFar + current, 0);
const negativeSum = negative.reduce((sumSoFar, current) => sumSoFar + current, 0);
Or just
const arr = ['-8', '-3', '1', '-4', '0'].map(Number);
const sum = arr.reduce((sumSoFar, current) => sumSoFar + current, 0);
for the overall sum.
The problem here is that your array is actually an array of strings instead of numbers. So in reality, you need to convert the array to an array of numbers and then you can sum the values.
const arr = ['-8', '-3', '1', '-4', '0'];
const sum = arr.reduce((acc, value) => acc + Number(value), 0); // -14