[フレーム]
Last Updated: September 30, 2021
·
8.277K
· angelathewebdev

`isOdd` function in JavaScript

If you're asked to write a isOdd function in JavaScript, you might be tempted to write something like the following

function isOdd(num) { return num % 2 === 1; }

Assuming that num is an integer.

However, you might be surprised by the result of isOdd(-3).

Don't believe me? Try it yourself.

Yes, the result is false because JavaScript modulo operator takes the sign of the first operand, which means -3 % 2 yields -1, not 1. So...with that in mind, now you should know how to write an isOdd function in JavaScript.

2 Responses
Add your response

Javascript can be so weird ;)
confused

over 1 year ago ·

If you're interested in a signed alternative, consider a simple example using bitwise operators:

function isOdd(num) {
 if (num === 0) return false;

 return (num & -num) === 1;
}

isOdd(-4); // false
isOdd(-3); // true
isOdd(0); // false
isOdd(3); // true
isOdd(4); // false
over 1 year ago ·

AltStyle によって変換されたページ (->オリジナル) /