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


当前回答

使用我的扩展:

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()

性能:

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

其他回答

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

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

is_even(3)
false
is_even(6)
true

在ES6:

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

许多人误解了odd的意思

isOdd("str")应该为假。 整数只能是奇数。 isOdd(1.223)和isOdd(-1.223)应该是假的。 浮点数不是整数。 isOdd(0)应该是假的。 0是一个偶数(https://en.wikipedia.org/wiki/Parity_of_zero)。 isOdd(-1)应该为真。 它是一个奇数。

解决方案

function isOdd(n) {

  // Must be a number
  if (isNaN(n)) {
    return false;
  }

  // Number must not be a float
  if ((n % 1) !== 0) {
    return false;
  }

  // Integer must not be equal to zero
  if (n === 0) {
    return false;
  }

  // Integer must be odd
  if ((n % 2) !== 0) {
    return true;
  }

  return false;
}

JS小提琴(如果需要):https://jsfiddle.net/9dzdv593/8/

1-liner

Javascript一行程序解决方案。对于那些不关心可读性的人。

const isOdd = n => !(isNaN(n) && ((n % 1) !== 0) && (n === 0)) && ((n % 2) !== 0) ? true : false;

你可以这样做:

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

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

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

希望这对你有所帮助。