How to determine if a number is odd in JavaScript

后端 未结 27 1827
一向
一向 2020-11-27 10:05

Can anyone point me to some code to determine if a number in JavaScript is even or odd?

27条回答
  •  Happy的楠姐
    2020-11-27 10:42

    Many people misunderstand the meaning of odd

    • isOdd("str") should be false.
      Only an integer can be odd.
    • isOdd(1.223) and isOdd(-1.223) should be false.
      A float is not an integer.
    • isOdd(0) should be false.
      Zero is an even integer (https://en.wikipedia.org/wiki/Parity_of_zero).
    • isOdd(-1) should be true.
      It's an odd integer.

    Solution

    function isOdd(n) {
    
      // Must be a number
      if (isNaN(n)) {
        return false;
      }
    
      // Number must not be a float
      if ((n % 1) !== 0) {
        return false;
      }
    
      // Integer must not be equal to zero
      if (n === 0) {
        return false;
      }
    
      // Integer must be odd
      if ((n % 2) !== 0) {
        return true;
      }
    
      return false;
    }
    

    JS Fiddle (if needed): https://jsfiddle.net/9dzdv593/8/

    1-liner

    Javascript 1-liner solution. For those who don't care about readability.

    const isOdd = n => !(isNaN(n) && ((n % 1) !== 0) && (n === 0)) && ((n % 2) !== 0) ? true : false;
    

提交回复
热议问题