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


当前回答

一个方法来知道数字是否为奇数

Let numbers = [11,20,2,5,17,10]; 让n = numbers.filter((ele) => ele % 2 != 0); console.log (n);

其他回答

使用我的扩展:

Number.prototype.isEven=function(){
     return this % 2===0;
};

Number.prototype.isOdd=function(){
     return !this.isEven();
}

然后

var a=5; 
 a.isEven();

= =假

 a.isOdd();

= = True

如果你不确定它是否是一个数字,通过以下分支测试它:

if(a.isOdd){
    a.isOdd();
}

更新:

如果你不使用变量:

(5).isOdd()

性能:

事实证明,过程式范式比面向对象范式更好。 顺便说一下,我在这个小提琴中进行了剖析。然而,面向对象的方式仍然是最漂亮的。

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

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

希望这对你有所帮助。

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

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

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

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

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

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

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

就是这样。

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