2010-05-12 40 views
85

Làm cách nào để tìm hiểu xem biến có thể chia hết cho 2 không? Hơn nữa tôi cần làm một chức năng nếu nó là và làm một chức năng khác nhau nếu nó không phải là.Tìm xem biến có chia hết cho 2

+5

@SilentGhost: mọi người có thực sự nhận bài tập về nhà của jQuery ngày nay không? –

+4

không biết về Andy, nhưng mọi người chắc chắn biết làm thế nào để mess lên thẻ của họ. – SilentGhost

+2

@OP: jQuery không phải là câu trả lời cho mọi thứ bạn có thể muốn làm trong JavaScript;) –

Trả lời

229

Sử dụng mô đun:

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

thích nó! đơn giản, dễ dàng, và bạn không làm cho tôi cảm thấy như một thằng ngốc để đặt câu hỏi ... mà (đối với tất cả những người khác chưa biết) là một vấn đề lớn đối với các nhà phát triển jQuery/Javascript mới. – sadmicrowave

+5

@sadmicrowave: tất cả chúng ta bắt đầu với tư cách là người mới bắt đầu tại một thời điểm nào đó. Vấn đề thực sự là thiếu các hướng dẫn thông tin ngoài kia. Các hướng dẫn cho người mới bắt đầu tuyệt đối nên làm rõ sự khác biệt giữa JavaScript và jQuery và họ chỉ đi sâu vào công cụ jQuery. –

+2

Mã đầu tiên mà tôi từng viết là JavaScript, và đó là hộp thoại cảnh báo "chào mừng". Năm đó là năm 1997 và nó dành cho trang chủ Geocities của tôi. Chúng tôi chắc chắn tất cả bắt đầu một nơi nào đó (một số đào tạo chính thức giúp, quá, mặc dù). –

13

Bạn không cần jQuery. Chỉ cần sử dụng toán tử JavaScript's Modulo.

+25

-1 không đủ jQuery –

+4

http://www.doxdesk.com/img/updates/20091116-so-large.gif, cho những người bạn không hiểu những gì @AlexCoplan đang nói về – Markasoftware

9

Bạn có thể sử dụng toán tử mô đun như thế này, không cần jQuery. Chỉ cần thay thế alerts bằng mã của bạn.

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

Bạn cũng có thể:

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

Nghiêm túc, không có jQuery plugin cho chẵn/lẻ kiểm tra?

Vâng, không còn nữa - phát hành "Lò" một plugin jQuery theo giấy phép MIT để kiểm tra xem một số đã cho là Lẻ/Chẵn.

Source code cũng có sẵn tại http://jsfiddle.net/7HQNG/

Test-dãy phòng có sẵn tại 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 cho các trò đùa ... ít nhất tôi hy vọng bạn đang nói đùa ;-) –

+7

Wow. Buồn cười, nhưng bạn có nhận ra ai đó sẽ thực sự sử dụng cái này không? –

+7

@Tim Down: Tôi tự hỏi nếu có ai sử dụng [plugin cơ bản jQuery] (http://www.reddit.com/r/programming/comments/buosj/add_a_number_to_another_number_in_javascript_img/c0on5ev)? Tiếp theo trong danh sách, một trình tạo số ngẫu nhiên jQuery ;-) –

0

mảng = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

array.each {| x | đặt x nếu x% 2 == 0}

ruby: nhanh hơn modulo D

+0

lol. Thời trang troll, thưa ngài. Bạn làm nó như thế nào? @SteveO – Todd

+1

Bạn đi lang thang từ 4chan? – Todd

9

Bạn có thể làm điều đó trong một cách tốt hơn (lên đến 50% nhà điều hành):

lẻ: x thậm chí: (x & 1)

tham khảo: hiệu suất cao JavaScript, 8. -> Bitwise Operators

0

Hãy viết đoạn mã sau vào giao diện điều khiển của bạn:

var isEven = function(deep) { 

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

Xin lưu ý: Nó sẽ trở thành sự thật, nếu số lượng tham gia thậm chí còn ngược lại là sai.

+0

cảm ơn cho câu trả lời nhưng điều này về cơ bản giống như câu trả lời được chấp nhận, bạn chỉ cần bọc nó trong một hàm. Dù sao, cảm ơn vì đã đóng góp – sadmicrowave

0

Sử dụng Modulus, nhưng .. Câu trả lời được chấp nhận ở trên hơi không chính xác. Tôi tin rằng vì x là một kiểu dữ liệu Number trong JavaScript rằng các nhà điều hành phải là một nhiệm vụ kép thay vì một phân ba, như vậy:

x % 2 == 0 

Hãy nhớ để khai báo các biến của bạn quá, vì vậy rõ ràng dòng mà có thể không được ghi độc lập. :-) Thường được sử dụng như một tuyên bố if. Hi vọng điêu nay co ich.

Các vấn đề liên quan