Değişkenin 2'ye bölünebilir olup olmadığını bulun


128

Bir değişkenin 2'ye bölünebilir olup olmadığını nasıl anlarım? Ayrıca, eğer öyleyse bir işlev yapmam ve değilse farklı bir işlev yapmam gerekiyor.


6
@SilentGhost: İnsanlar bugünlerde gerçekten jQuery ödevi alıyor mu?
Andy E

4
Bunu bilmiyorum Andy, ama insanlar kesinlikle etiketlerini nasıl bozacaklarını biliyorlar.
SilentGhost

2
@OP: jQuery, JavaScript'te yapmak isteyebileceğiniz her şeyin cevabı değildir;)
Mike Atlas

8
@Mike Yanlış! Bunun için jQuery temel aritmetik eklentisini kullanmalısınız! Gidecek yol bu ...: P (İroni)
Pablo Cabrera

Yanıtlar:


312

Modülü kullanın:

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

30
Sevdim! basit, kolay ve soruyu sorduğum için beni aptal gibi hissettirmedin ... ki bu (zaten bilmeyenler için) yeni jQuery / Javascript geliştiricileri için büyük bir mesele.
sadmicrowave

6
@sadmicrowave: Hepimiz bir noktada yeni başlayanlar olarak başlarız. Gerçek sorun, dışarıda bilgilendirici derslerin olmaması. Yeni başlayanlar için öğreticiler, JavaScript ve jQuery arasındaki farkı netleştirmeli ve doğrudan jQuery konularına dalmalıdır.
Andy E

3
Yazdığım ilk kod JavaScript'teydi ve bu bir "hoş geldiniz" uyarı kutusu açılır penceresiydi. Yıl 1997'ydi ve Geocities ana sayfam içindi. Kesinlikle hepimiz bir yerden başlıyoruz (bazı resmi eğitimler de yardımcı oluyor).
Mike Atlas

olmamalı: variable% 2 == 0 Hatalıysam beni eğit.
Sean Tankı Garvey

28

Cidden, tek / çift kontroller için jQuery eklentisi yok mu?

Artık, belirli bir sayının Tek / Çift olup olmadığını test etmek için MIT lisansı altında bir jQuery eklentisi "Oven" yayınlamıyoruz.

Kaynak kodu ayrıca http://jsfiddle.net/7HQNG/ adresinde de mevcuttur.

Test süitleri http://jsfiddle.net/zeuRV/ adresinde mevcuttur.

(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
Vay. Komik, ama birinin bunu gerçekten kullanacağının farkında mısın?
Tim Down

7
@Tim Down: Bu jQuery temel aritmetik eklentisini kullanan var mı acaba ? Listenin yanında, bir jQuery rasgele sayı üreteci ;-)
Andy E

9
JQuery'nin değişkenler, işlevler vb. Oluşturmak gibi yapabileceği, ham JavaScript ile hala yapılmakta olan çok şey var . Sadece inanılmaz ;-)
Anurag

4
@Andy - O bağlantıdaki ve SO görüntüsündeki ROFL - doxdesk.com/img/updates/20091116-so-large.gif "jQuery kullan" cevabının şimdi Javascript'te tüm zamanların en yüksek seviyesine ulaşacağını tahmin ediyorum :)
Anurag

Beni kullan açıklayan bir kelime belgeniz var mı? @Anurag
Todd


11

Modül işlecini bu şekilde kullanabilirsiniz, jQuery'ye gerek yoktur. Sadece alertskodunuzla değiştirin .

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

11

Bunu daha iyi bir şekilde yapabilirsiniz (modulo operatöründen% 50'ye kadar daha hızlı):

tek: x & 1 çift:! (x & 1)

Referans: Yüksek Performanslı JavaScript, 8. -> Bitsel Operatörler


Bu harika, aslında en iyi cevap. Ancak, Bitwise Operatörleri hakkında bilgi gerektirir ..
Sean Tank Garvey

8

Ayrıca şunları da yapabilirsiniz:

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

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

Bu kodun yanlış / kusurlu olduğunu düşünüyorum. X değişkeni için bir değer bildiriyorsunuz (özellikle x'i her zaman 2 sayısına eşit yapar) .. ilk hata. Sonra, bir sonraki satırınız, eğer x değişkeni 2'ye bölünebilirse, o zaman tekFonksiyonu yapın, aksi takdirde / eğer-fonksiyonunu yapmayın ... Bu yaklaşımdaki problem, her zaman çift Fonksiyonu üreteceğidir - asla tekFonksiyonu - bu başka bir sorun / hata. Lütfen yanılıyorsam beni eğit.
Sean Tankı Garvey

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

2

Bu yardımcı olur umarım.

let number = 7;

if(number%2 == 0){      

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

}else{

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

}

İşte konsola girişinizin paritesini kaydedecek eksiksiz bir işlev.

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

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

  }else{

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

  }
}

1

Lütfen konsolunuza aşağıdaki kodu yazın:

var isEven = function(deep) {

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

Lütfen Dikkat: Girilen numara başka türlü yanlış olsa bile doğru dönecektir.


1
cevap için teşekkürler ama bu aslında kabul edilen cevapla aynı, sadece bir fonksiyona sardın. Her neyse, katkıda bulunduğunuz için teşekkürler
sadmicrowave

1

Modül'ü kullanın, ancak .. Yukarıda kabul edilen cevap biraz yanlış. X JavaScript'te bir Sayı türü olduğu için operatörün üçlü atama yerine çift atama olması gerektiğine inanıyorum, örneğin:

x % 2 == 0

Değişkenlerinizi de bildirmeyi unutmayın, bu yüzden açıkça bu satır bağımsız olarak yazılamaz. :-) Genellikle bir ififade olarak kullanılır . Bu yardımcı olur umarım.


-2

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

array.each {| x | x% 2 == 0} ise x koyar

yakut: D

2 4 6 8 10


1
4chan'dan mı geçiyorsun?
Todd
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.