谁能告诉我一些代码,以确定一个数字在JavaScript是偶数还是奇数?
当前回答
递归地减去2,直到达到-1或0(显然只适用于正整数):)
其他回答
function isEven(x) { return (x%2)==0; }
function isOdd(x) { return !isEven(x); }
使用我的扩展:
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()
性能:
事实证明,过程式范式比面向对象范式更好。 顺便说一下,我在这个小提琴中进行了剖析。然而,面向对象的方式仍然是最漂亮的。
一个方法来知道数字是否为奇数
Let numbers = [11,20,2,5,17,10]; 让n = numbers.filter((ele) => ele % 2 != 0); console.log (n);
许多人误解了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;
}