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