2010-05-12 67 views
85

如何判斷變量是否可以被2整除?此外,我需要做一個功能,如果它不是,做不同的功能。查找變量是否被2整除

+5

@SilentGhost:現在人們真的得到了jQuery的功課嗎? – 2010-05-12 17:01:36

+4

不知道那個安迪,但人們肯定知道如何搞砸他們的標籤。 – SilentGhost 2010-05-12 17:02:40

+2

@OP:jQuery不是您可能想要在JavaScript中做的所有事情的答案;) – 2010-05-12 17:07:59

回答

229

使用模量:

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

愛它!簡單,容易,而且你不會讓我覺得自己像個白癡一樣問這個問題......對於所有其他不熟悉的人來說,對於新的jQuery/Javascript開發人員來說是一件大事。 – sadmicrowave 2010-05-13 11:54:17

+5

@微波:我們都是以初學者的身份出發。真正的問題是缺乏信息輔導。絕對初學者的教程應該澄清JavaScript和jQuery之間的區別,他們只是直接介紹jQuery的東西。 – 2010-05-13 12:03:26

+2

我寫的第一個代碼是用JavaScript編寫的,那是一個「歡迎」提醒框彈出窗口。這一年是1997年,這是我的Geocities主頁。我們絕對都是從某個地方開始的(儘管如此,一些正式的訓練也有幫助)。 – 2010-05-13 16:23:21

13

你並不需要jQuery的。只需使用JavaScript's Modulo運算符。

+25

-1不夠jQuery – 2011-12-14 11:08:42

+4

http://www.doxdesk.com/img/updates/20091116-so-large.gif,對於那些你不明白@AlexCoplan正在談論的 – Markasoftware 2014-02-25 03:57:30

9

你可以像這樣使用模運算符,不需要jQuery。只需用您的代碼替換alerts即可。

var x = 2; 
if (x % 2 == 0) 
{ 
    alert('even'); 
} 
else 
{ 
    alert('odd') 
} 
3
var x = 2; 
x % 2 ? oddFunction() : evenFunction(); 
6

你還可以:

if (x & 1) 
itsOdd(); 
else 
itsEven(); 
26

嚴重的是,有沒有jQuery插件奇/偶校驗?

嗯,現在不是了 - 在MIT的許可證下發佈一個jQuery插件「Oven」來測試給定的數字是奇數/偶數。

源代碼也可以在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); 
    }; 
})();​ 
+8

+1這個笑話......至少我希望你在開玩笑;-) – 2010-05-13 07:38:02

+7

哇。有趣的,但你意識到有人會真的使用它? – 2010-05-13 08:52:17

+7

@Tim Down:我想知道是否有人使用[jQuery基本算術插件](http://www.reddit.com/r/programming/comments/buosj/add_a_number_to_another_number_in_javascript_img/c0on5ev)?接下來在列表中,有一個jQuery隨機數生成器;-) – 2010-05-13 08:58:06

0

陣列= [1,2,3,4,5,6,7,8,9, 10]

array.each {| x |將X個如果x%2 == 0}

紅寶石:比模快d

+0

哈哈。先生,時髦巨魔。你怎麼做呢? @SteveO – Todd 2014-11-14 14:15:12

+1

你從4chan徘徊? – Todd 2014-11-14 14:15:28

9

可以以更好的方式做到這一點(高達50%運營商):

奇:X 連:(X & 1)

參考:高性能JavaScript中,8 - >位運算符

0

請寫出下列代碼在控制檯:

var isEven = function(deep) { 

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

請注意:它將返回true,如果輸入的號碼甚至否則爲false。

+0

感謝您的答案,但這與接受的答案基本相同,您只是將其包裝在一個函數中。無論如何,感謝您的貢獻 – sadmicrowave 2017-03-01 15:19:05

0

使用模量,但..上面接受的答案是稍微不準確的。我相信,因爲x在JavaScript中的號碼類型的操作應該是一個雙重任務,而不是三重任務,像這樣:

x % 2 == 0 

記住要過聲明變量,所以很明顯該行無法寫入獨立。 :-)通常用作if陳述。希望這可以幫助。