Cari apakah variabel dapat dibagi 2


128

Bagaimana cara mengetahui jika suatu variabel dapat dibagi 2? Selanjutnya saya perlu melakukan fungsi jika itu dan melakukan fungsi yang berbeda jika tidak.


6
@ SilentGhost: apakah orang benar-benar mendapatkan pekerjaan rumah jQuery saat ini?
Andy E

4
tidak tahu tentang itu Andy, tetapi orang pasti tahu cara mengacaukan tag mereka.
SilentGhost

2
@OP: jQuery bukan jawaban untuk semua yang mungkin ingin Anda lakukan dalam JavaScript;)
Mike Atlas

8
@ Mike Salah! Anda harus menggunakan plugin aritmatika dasar jQuery untuk itu! Itulah cara untuk pergi ...: P (Irony)
Pablo Cabrera

Jawaban:


312

Gunakan modulus:

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

30
suka! sederhana, mudah, dan Anda tidak membuat saya merasa seperti orang idiot karena mengajukan pertanyaan ... yang (untuk semua yang belum tahu) adalah masalah besar bagi pengembang jQuery / Javascript baru.
sadmic microwave

6
@sadmic microwave: kita semua mulai sebagai pemula di beberapa titik. Masalah sebenarnya adalah kurangnya tutorial informatif di luar sana. Tutorial untuk pemula mutlak harus mengklarifikasi perbedaan antara JavaScript dan jQuery dan mereka langsung menyelami hal-hal jQuery.
Andy E

3
Kode pertama yang pernah saya tulis adalah dalam JavaScript, dan itu adalah kotak peringatan "selamat datang". Tahun itu 1997 dan itu untuk beranda Geocities saya. Kita semua pasti mulai di suatu tempat (beberapa pelatihan formal juga membantu).
Mike Atlas

seharusnya tidak menjadi: variabel% 2 == 0 Mendidik saya jika saya salah.
Sean Tank Garvey

28

Serius, tidak ada plugin jQuery untuk cek ganjil / genap?

Nah, tidak lagi - melepaskan "Oven" sebuah plugin jQuery di bawah lisensi MIT untuk menguji apakah angka yang diberikan Ganjil / Genap.

Kode sumber juga tersedia di http://jsfiddle.net/7HQNG/

Suite-tes tersedia di 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
Wow. Lucu, tetapi Anda sadar seseorang benar-benar akan menggunakan ini?
Tim Down

7
@Tim Down: Saya ingin tahu apakah ada yang menggunakan plugin aritmatika dasar jQuery ? Selanjutnya dalam daftar, generator nomor acak jQuery ;-)
Andy E

9
Ada banyak hal yang dapat dilakukan jQuery, seperti membuat variabel, fungsi, dll., Yang masih dilakukan dengan JavaScript mentah . Hanya luar biasa ;-)
Anurag

4
@Andy - ROFL di tautan itu dan gambar SO - doxdesk.com/img/updates/20091116-so-large.gif Saya kira jawaban "use jQuery" akan mencapai nilai tertinggi dalam Javascript sekarang :)
Anurag

Anda memiliki dokumen kata yang menjelaskan gunakan saya itu? @Anurag
Todd


11

Anda dapat menggunakan operator modulus seperti ini, tidak perlu untuk jQuery. Ganti saja alertsdengan kode Anda.

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

11

Anda dapat melakukannya dengan cara yang lebih baik (hingga 50% lebih cepat daripada operator modulo):

aneh: x & 1 genap:! (x & 1)

Referensi: JavaScript Kinerja Tinggi, 8. -> Operator Bitwise


Ini jawaban yang bagus, sebenarnya adalah yang terbaik. Namun, itu membutuhkan pengetahuan tentang Operator Bitwise ..
Sean Tank Garvey

8

Anda juga bisa:

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

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

Saya pikir kode ini salah / cacat. Anda mendeklarasikan nilai untuk variabel x (khususnya membuat x selalu setara dengan angka 2) .. kesalahan pertama. Kemudian, baris Anda berikutnya hanya mengatakan jika variabel x dapat dibagi 2, lalu lakukan oddFunction, kalau tidak / tidak melakukan evenFunction ... Masalah dengan pendekatan ini adalah bahwa ia akan selalu menghasilkan evenFunction - tidak pernah the oddFunction - itu masalah / kesalahan lain. Tolong mendidik saya jika saya salah.
Sean Tank Garvey

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

2

Semoga ini membantu.

let number = 7;

if(number%2 == 0){      

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

}else{

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

}

Berikut adalah fungsi lengkap yang akan masuk ke konsol paritas input Anda.

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

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

  }else{

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

  }
}

1

Silakan tulis kode berikut di konsol Anda:

var isEven = function(deep) {

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

Harap Dicatat: Ini akan mengembalikan true, jika nomor yang dimasukkan bahkan salah.


1
terima kasih atas jawabannya tetapi ini pada dasarnya sama dengan jawaban yang diterima, Anda hanya membungkusnya dalam suatu fungsi. Ngomong-ngomong, terima kasih telah berkontribusi
sadmicrowave

1

Gunakan Modulus, tapi .. Jawaban yang diterima di atas sedikit tidak akurat. Saya percaya karena x adalah tipe angka dalam JavaScript bahwa operator haruslah penugasan ganda alih-alih penugasan rangkap tiga, seperti:

x % 2 == 0

Ingatlah untuk mendeklarasikan variabel Anda juga, jadi jelas bahwa baris itu tidak dapat ditulis sendiri. :-) Biasanya digunakan sebagai ifpernyataan. Semoga ini membantu.


-2

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

array.each {| x | menempatkan x jika x% 2 == 0}

ruby: D

2 4 6 8 10


1
Anda berjalan dari 4chan?
Todd
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.