Can't solve a JavaScript problem (if & else)

Hi I have a JavaScript problem:
"Sum odd numbers

Complete the function sumOddNumbers such that it returns the sum of all the odd numbers from the numbers parameter it receives.
The function should also work for negative numbers."

I tried:

function sumOddNumbers(numbers) {
let sum = 0;
numbers.forEach(function(number) { // array item (singular)
if (number % 2 === 1) {
sum = sum + number;
}
else if (number < 0) {
if (number % 2 === 1) {
sum = sum + number;
}
}
else {
console.log(“Positive/even number spotted.”);
}

    });
    return sum;

}

I don’t understand why the negative odd numbers don’t add to the sum?

Edit: I fixed the problem. The problem is solved now.

else if (number < 0) {
if (number % 2 === 1) {
sum = sum + number;
}

In above section number%2 will return -1 rather than 1, so -ve odd numbers can’t pass this statement and that’s the reason, and bcoz it number is -ve it will subtract from ‘sum’ rather than adding, you can use Math.abs()

BTW here is a short method to solve this problem

Mod edit : solution redacted 
       

Here “e%2!=0” will filter all odd numbers and Math.abs will turn all numbers into +ve integers.

Hi there, please don’t post solutions to fCC challenges on the forum.

Not sure also if you noticed that the OP was no longer asking for help.

This topic was automatically closed 182 days after the last reply. New replies are no longer allowed.