查找变量是否可被2整除


128

我如何确定变量是否可以被2整除?此外,如果需要,我需要执行一个功能,如果不是,则需要执行其他功能。


6
@SilentGhost:如今人们真的能得到jQuery作业吗?
安迪E

4
我不知道安迪,但是人们肯定知道如何弄乱他们的标签。
SilentGhost 2010年

2
@OP:jQuery并不是您可能想在JavaScript中做的一切的答案;)
Mike Atlas 2010年

8
@迈克错!您应该为此使用jQuery基本算术插件!那就是要走的路...:P(讽刺)
巴勃罗·卡布雷拉

Answers:


312

使用模数:

// Will evaluate to true if the variable is divisible by 2
variable % 2 === 0  

30
爱它!简单,容易,而且您并没有让我觉得自己是个傻瓜……对新的jQuery / Java开发人员来说,这(对于所有其他尚不知道的人)意义重大。
sadmicrowave

6
@sadmicrowave:在某个时候,我们都是从初学者开始的。真正的问题是那里缺少信息丰富的教程。面向绝对初学者的教程应阐明JavaScript和jQuery之间的区别,而它们只是直接深入研究jQuery。
Andy E 2010年

3
我写的第一个代码是JavaScript,这是一个“欢迎”警报框弹出窗口。那是1997年,那是我的Geocities主页。我们绝对都从某个地方开始(不过,一些正式的培训也有帮助)。
Mike Atlas 2010年

不应该这样:变量%2 == 0如果我错了,请教我。
肖恩·坦克·加维

28

认真地说,没有用于奇/偶校验的jQuery插件吗?

好吧,不再了-根据MIT许可发布“烤箱”一个jQuery插件来测试给定数字是否为奇/偶。

也可以从http://jsfiddle.net/7HQNG/获得源代码。

可在http://jsfiddle.net/zeuRV/获得测试套件。

(function() {
    /*
     * isEven(n)
     * @args number n
     * @return boolean returns whether the given number is even
     */
    jQuery.isEven = function(number) {
        return number % 2 == 0;
    };

    /* isOdd(n)
     * @args number n
     * @return boolean returns whether the given number is odd
     */
    jQuery.isOdd = function(number) {
        return !jQuery.isEven(number);
    };
})();​

7
哇。有趣,但是您知道有人会真正使用它吗?
Tim Down

7
@Tim Down:我想知道是否有人使用该jQuery基本算术插件?列表中的下一个是jQuery随机数生成器;-)
Andy E 2010年

9
jQuery可以完成很多工作,例如创建变量,函数等,而原始JavaScript仍然可以完成这些工作。
真是

4
@Andy-该链接处的ROFL和SO图像-doxdesk.com/img/updates/20091116-so-large.gif我猜“使用jQuery”的答案现在将达到Javascript的历史新高:)
阿努拉格2010年

你有Word文档解释用我吗?@Anurag
Todd


11

您可以像这样使用模运算符,而无需jQuery。只需将alerts代码替换为即可。

var x = 2;
if (x % 2 == 0)
{
  alert('even');
}
else
{
  alert('odd')
}

11

您可以采用更好的方法(比取模运算符快50%):

奇数:x&1偶数:!(x&1)

参考:高性能JavaScript,8。->按位运算符


这是一个很好的答案,实际上是最好的答案。但是,它需要位运算符的知识。.–
肖恩·


4
var x = 2;
x % 2 ? oddFunction() : evenFunction();

我认为此代码是错误的/有缺陷的。您在声明变量x的值(特别是使x始终等于数字2).. first错误。然后,您的下一行简单地说,如果变量x可以被2除,则执行oddFunction,否则执行if / if-not进行evenFunction ...这种方法的问题是它将始终产生evenFunction-永远不会产生奇数函数-这是另一个问题/错误。如果我错了,请教育我。
肖恩·坦克·加维


2

希望这可以帮助。

let number = 7;

if(number%2 == 0){      

  //do something;
  console.log('number is Even');  

}else{

  //do otherwise;
  console.log('number is Odd');

}

这是一个完整的功能,它将把输入的奇偶校验记录到控制台。

const checkNumber = (x) => {
  if(number%2 == 0){      

    //do something;
    console.log('number is Even');  

  }else{

    //do otherwise;
    console.log('number is Odd');

  }
}

1

请在您的控制台中编写以下代码:

var isEven = function(deep) {

  if (deep % 2 === 0) {
        return true;  
    }
    else {
        return false;    
    }
};
isEven(44);

请注意:如果输入的数字为假,则返回true。


1
感谢您的回答,但这实际上与接受的答案相同,只是将其包装在一个函数中。无论如何,感谢您的贡献
sadmicrowave

1

使用模量,但是..上面接受的答案有点不准确。我相信,因为x是JavaScript中的Number类型,所以运算符应为双精度分配,而不是三重赋值,如下所示:

x % 2 == 0

请记住,也要声明变量,因此显然不能单独编写该行。:-)通常用作if语句。希望这可以帮助。


-2

数组= [1、2、3、4、5、6、7、8、9、10]

array.each {| x | 如果x%2 == 0则放x

红宝石:D

2 4 6 8 10


1
你从4chan徘徊了吗?
托德2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.