谁能告诉我一些代码,以确定一个数字在JavaScript是偶数还是奇数?


当前回答

奇数除以2剩下余数为1,偶数除以0剩下余数为0。因此我们可以使用这段代码

  function checker(number)  {
   return number%2==0?even:odd;
   }

其他回答

if (X % 2 === 0){
} else {
}

用你的数字替换X(可以来自一个变量)。If语句在数字为偶数时运行,Else语句在数字为奇数时运行。

如果你只想知道某个给定的数字是否是奇数:

if (X % 2 !== 0){
}

同样,用一个数字或变量替换X。

另一个使用filter()方法的例子:

let even = arr.filter(val => {
  return val % 2 === 0;
});
// even = [2,4,6]

我将实现这个来返回一个布尔值:

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

它对无符号数和有符号数都有效。当模量返回-1或1时,它将被转换为true。

Non-modulus解决方案:

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;
}

递归地减去2,直到达到-1或0(显然只适用于正整数):)

在ES6:

const isOdd = num => num % 2 == 1;