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


当前回答

ES6中的一行代码,因为它很干净。

const isEven = (num) => num % 2 == 0;

其他回答

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

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

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

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

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

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

function isEven(x) { return (x%2)==0; }
function isOdd(x) { return !isEven(x); }

ES6中的一行代码,因为它很干净。

const isEven = (num) => num % 2 == 0;

当您需要测试某个变量是否是奇数时,您应该首先测试它是否是整数。另外,请注意,当您计算负数的余数时,结果将是负数(-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