How to determine if a number is odd in JavaScript

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

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

27条回答
  •  栀梦
    栀梦 (楼主)
    2020-11-27 10:50

    I'd implement this to return a boolean:

    function isOdd (n) {
        return !!(n % 2);
        // or ((n % 2) !== 0).
    }
    

    It'll work on both unsigned and signed numbers. When the modulus return -1 or 1 it'll get translated to true.

    Non-modulus solution:

    var is_finite = isFinite;
    var is_nan = isNaN;
    
    function isOdd (discriminant) {
        if (is_nan(discriminant) && !is_finite(discriminant)) {
            return false;
        }
    
        // Unsigned numbers
        if (discriminant >= 0) {
            while (discriminant >= 1) discriminant -= 2;
    
        // Signed numbers
        } else {
            if (discriminant === -1) return true;
            while (discriminant <= -1) discriminant += 2;
        }
    
        return !!discriminant;
    }
    

提交回复
热议问题