谁能告诉我一些代码,以确定一个数字在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

其他回答

使用下面的代码:

函数 isOdd(num) { return num % 2;} console.log(“1 is ” + isOdd(1)); console.log(“2 is ” + isOdd(2)); console.log(“3 is ” + isOdd(3)); console.log(“4 is ” + isOdd(4));

1表示奇数,0表示偶数。

在ES6:

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

这里有很多答案,但我只想提一点。

通常最好使用模运算符,如% 2,但也可以使用位运算符,如& 1。两者都会产生相同的结果。然而,它们的先例不同。如果你需要一段代码,比如

i%2 === p ? n : -n

这很好,但是对于位运算符,你必须这样做

(i&1) === p ? n : -n

就是这样。

你可以这样做:

function isEven(value){
    if (value%2 == 0)
        return true;
    else
        return false;
}

使用按位AND运算符。

函数oddOrEven(x) { Return (x & 1) ?“odd”:“偶数”; } 函数checkNumber(argNumber) { . getelementbyid(“结果”)。innerHTML = "Number " + argNumber + " is " + oddOrEven(argNumber); } checkNumber (17); < span style="font- family:宋体;"> < / div >

如果你不想要一个字符串返回值,而是一个布尔值,使用这个:

var isOdd = function(x) { return x & 1; };
var isEven  = function(x) { return !( x & 1 ); };