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


当前回答

当您需要测试某个变量是否是奇数时,您应该首先测试它是否是整数。另外,请注意,当您计算负数的余数时,结果将是负数(-3 % 2 === -1)。

function isOdd(value) {
  return typeof value === "number" && // value should be a number
    isFinite(value) &&                // value should be finite
    Math.floor(value) === value &&    // value should be integer
    value % 2 !== 0;                  // value should not be even
}

如果号码。isInteger是可用的,你也可以将这段代码简化为:

function isOdd(value) {
  return Number.isInteger(value)      // value should be integer
    value % 2 !== 0;                  // value should not be even
}

注意:在这里,我们测试值% 2 !== 0而不是值% 2 == 1,因为-3 % 2 === -1。如果你不想让-1通过这个测试,你可能需要改变这一行。

下面是一些测试用例:

isOdd();         // false
isOdd("string"); // false
isOdd(Infinity); // false
isOdd(NaN);      // false
isOdd(0);        // false
isOdd(1.1);      // false
isOdd("1");      // false
isOdd(1);        // true
isOdd(-1);       // true

其他回答

这可以用一小段代码来解决:

function isEven(value) {
    return !(value % 2)
}

希望这对你有所帮助。

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

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

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

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

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

使用位,codegolfing:

var isEven=n=>(n&1)?"odd":"even";

这样如何……

    var num = 3 //instead get your value here
    var aa = ["Even", "Odd"];

    alert(aa[num % 2]);

一个可以传递的简单函数。使用模运算符%:

var is_even = function(x) {
    return !(x % 2); 
}

is_even(3)
false
is_even(6)
true