You can find all odd numbers in a JavaScript array by:
You should avoid checks for odd numbers with "n % 2 === 1
" (where n
is an integer, and %
is the remainder operator) because, for negative numbers, this would return -1
. Therefore, it may be easier to simply check if the number is not an even number (i.e. n % 2 !== 0
) because it accounts for both, negative and positive numbers (since -0 === 0
in JavaScript). Otherwise, you would need an extra/explicit check for negative numbers.
Using Array.prototype.filter()
To get all odd numbers in an array of integers using the Array.prototype.filter()
method, you can do the following:
// ES5+ const numbers = [-5, -2, -1, 0, 1, 3, 4, 7]; const oddNumbers = numbers.filter(function (number) { return number % 2 !== 0; }); console.log(oddNumbers); // [-5, -1, 1, 3, 7]
This would return a new array containing all odd numbers. In ES6+, you can shorten this to a one-liner using the arrow function syntax:
// ES6+ const numbers = [-5, -2, -1, 0, 1, 3, 4, 7]; const oddNumbers = numbers.filter((number) => number % 2 !== 0); console.log(oddNumbers); // [-5, -1, 1, 3, 7]
When no matches are found, an empty array is returned:
// ES6+ const numbers = [-2, 0, 4]; const oddNumbers = numbers.filter((number) => number % 2 !== 0); console.log(oddNumbers); // []
Using a Loop
You can loop over an array of integers and create a new array to which you add all odd numbers to, for example, like so:
const numbers = [-5, -2, -1, 0, 1, 3, 4, 7]; const oddNumbers = []; for (let i = 0; i < numbers.length; i++) { if (numbers[i] % 2 !== 0) { oddNumbers.push(numbers[i]); } } console.log(oddNumbers); // [-5, -1, 1, 3, 7]
This would return a new array containing all odd numbers, and when no match is found, an empty array is returned.
Hope you found this post useful. It was published . Please show your love and support by sharing this post.