Tìm nếu biến chia hết cho 2


128

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


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

4
Không biết về Andy, nhưng mọi người chắc chắn biết cách làm rối 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;)
Mike Atlas

8
@Mike Sai! Bạn nên sử dụng plugin số học cơ bản jQuery cho điều đó! Đó là cách để đi ...: P (trớ trêu)
Pablo Cabrera

Câu trả lời:


313

Sử dụng mô đun:

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

30
yêu nó! đơn giản, dễ dàng và bạn không khiến tôi cảm thấy mình là một thằng ngốc khi đặt câu hỏi ... điều này (đố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.
sadmic [

6
@sadmic [: tất cả chúng ta đều bắt đầu như người mới bắt đầu tại một số điểm. Vấn đề thực sự là thiếu 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ỉ cần đi thẳng vào công cụ jQuery.
Andy E

3
Mã đầu tiên tôi từng viết là bằng JavaScript và đó là cửa sổ bật lên hộp thông báo "hoan nghênh". Năm đó là năm 1997 và nó dành cho trang chủ Geocities của tôi. Tất cả chúng ta chắc chắn bắt đầu ở đâu đó (một số đào tạo chính thức cũng giúp).
Mike Atlas

không nên: biến% 2 == 0 Giáo dục tôi nếu tôi sai.
Sean Tank Garvey

28

Nghiêm túc mà nói, không có plugin jQuery để kiểm tra lẻ / thậm chí?

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

Mã nguồn cũng có sẵn tại http://jsfiddle.net/7HQNG/

Các bộ thử nghiệm 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);
    };
})();​

7
Ồ Hài hước, nhưng bạn có nhận ra ai đó sẽ thực sự sử dụng điều này?
Tim xuống

7
@Tim Down: Tôi tự hỏi liệu có ai sử dụng plugin số học cơ bản jQuery đó không? Tiếp theo trong danh sách, trình tạo số ngẫu nhiên jQuery ;-)
Andy E

9
Có rất nhiều thứ mà jQuery có thể làm, như tạo các biến, hàm, v.v., vẫn đang được thực hiện với JavaScript thô . Không thể tin được ;-)
Anurag

4
@Andy - ROFL tại liên kết đó và hình ảnh SO - doxdesk.com/img/updates/20091116-so-large.gif Tôi đoán rằng câu trả lời "sử dụng jQuery" sẽ đạt mức cao nhất mọi thời đại trong Javascript :)
Anurag

Bạn có tài liệu từ giải thích sử dụng tôi không? @ Anurag
Todd


11

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ế alertsbằng mã của bạn.

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

11

Bạn có thể làm điều đó theo cách tốt hơn (nhanh hơn tới 50% so với toán tử modulo):

lẻ: x & 1 chẵn :! (x & 1)

Tham khảo: JavaScript hiệu suất cao, 8. -> Toán tử bitwise


Đây là một câu trả lời tuyệt vời, thực sự tốt nhất. Tuy nhiên, nó đòi hỏi kiến ​​thức về các nhà khai thác Bitwise ..
Sean Tank Garvey

8

Bạn cũng có thể:

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

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

Tôi nghĩ rằng mã này là sai / thiếu sót. Bạn đang khai báo một giá trị cho biến x (cụ thể là x luôn luôn tương đương với số 2) .. lỗi đầu tiên. Sau đó, dòng tiếp theo của bạn chỉ đơn giản nói nếu biến x có thể được chia cho 2, sau đó thực hiện các hàm lẻ, khác / nếu không thực hiện Hàm chẵn ... Vấn đề với cách tiếp cận này là nó sẽ luôn tạo ra Hàm chẵn - không bao giờ là hàm lẻ - đó là một vấn đề / lỗi khác. Hãy giáo dục tôi nếu tôi sai.
Sean Tank Garvey

4
if (x & 1)
 itIsOddNumber();
else
 itIsEvenNumber();

2

Hi vọng điêu nay co ich.

let number = 7;

if(number%2 == 0){      

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

}else{

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

}

Đây là một chức năng hoàn chỉnh sẽ đăng nhập vào bàn điều khiển tính chẵn lẻ của đầu vào của bạn.

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

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

  }else{

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

  }
}

1

Vui lòng viết mã sau đây trong bảng đ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ả về true, nếu số đã nhập thậm chí còn sai.


1
cảm ơn vì câu trả lời nhưng về cơ bản 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
sadmiciances

1

Sử dụng Modulus, nhưng .. Câu trả lời được chấp nhận ở trên là hơi không chính xác. Tôi tin rằng vì x là loại Số trong JavaScript mà toán tử phải là phép gán kép thay vì phép gán ba, như vậy:

x % 2 == 0

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


-2

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

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

hồng ngọc: D

2 4 6 8 10


1
Bạn đi lang thang từ 4chan?
Todd
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.