Trova se la variabile è divisibile per 2


128

Come faccio a capire se una variabile è divisibile per 2? Inoltre ho bisogno di fare una funzione se lo è e fare una funzione diversa se non lo è.


6
@SilentGhost: le persone ricevono davvero i compiti di jQuery al giorno d'oggi?
Andy E,

4
non lo so Andy, ma le persone sicuramente sanno come rovinare i loro tag.
SilentGhost,

2
@OP: jQuery non è la risposta a tutto ciò che potresti voler fare in JavaScript;)
Mike Atlas,

8
@Mike Wrong! Per questo dovresti usare il plugin aritmetico di base di jQuery! Ecco la strada da percorrere ...: P (ironia)
Pablo Cabrera,

Risposte:


312

Usa il modulo:

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

30
lo adoro! semplice, facile e non mi hai fatto sentire un idiota per porre la domanda ... che (per tutti gli altri che non lo sanno già) è un grosso problema per i nuovi sviluppatori jQuery / Javascript.
sadmic Microwave,

6
@sadmic Microwave: iniziamo tutti come principianti ad un certo punto. Il vero problema è la mancanza di tutorial informativi là fuori. I tutorial per principianti assoluti dovrebbero chiarire la differenza tra JavaScript e jQuery e si immergono direttamente nelle cose jQuery.
Andy E,

3
Il primo codice che io abbia mai scritto era in JavaScript, ed era un popup di benvenuto "benvenuto". L'anno era il 1997 ed era per la mia homepage di Geocities. Sicuramente iniziamo tutti da qualche parte (anche un po 'di formazione formale aiuta, però).
Mike Atlas,

non dovrebbe essere: variabile% 2 == 0 Educami se sbaglio.
Sean Tank Garvey,

28

Scherzi a parte, non esiste un plug-in jQuery per controlli pari / dispari?

Bene, non più - rilasciando "Oven" un plug-in jQuery con licenza MIT per verificare se un determinato numero è pari / dispari.

Il codice sorgente è disponibile anche su http://jsfiddle.net/7HQNG/

Le suite di test sono disponibili su 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. Divertente, ma ti rendi conto che qualcuno lo userà davvero?
Tim Down,

7
@Tim Down: mi chiedo se qualcuno usa quel plug-in aritmetico di base jQuery ? Avanti nella lista, un generatore di numeri casuali jQuery ;-)
Andy E

9
C'è così tanto che jQuery può fare, come la creazione di variabili, funzioni, ecc., Che viene ancora fatto con JavaScript non elaborato . Semplicemente incredibile ;-)
Anurag,

4
@Andy - ROFL su quel link e l'immagine SO - doxdesk.com/img/updates/20091116-so-large.gif Immagino che la risposta "usa jQuery" raggiungerà un massimo storico in Javascript ora :)
Anurag,

Hai un documento in formato word che mi spieghi? @Anurag
Todd


11

È possibile utilizzare l'operatore del modulo in questo modo, senza necessità di jQuery. Sostituisci semplicemente alertscon il tuo codice.

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

11

Puoi farlo in un modo migliore (fino al 50% più veloce dell'operatore modulo):

dispari: x & 1 pari:! (x & 1)

Riferimento: JavaScript ad alte prestazioni, 8. -> Operatori bit a bit


Questa è un'ottima risposta, in realtà la migliore. Tuttavia, richiede la conoscenza degli operatori Bitwise.
Sean Tank Garvey,

8

Puoi anche:

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

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

Penso che questo codice sia sbagliato / imperfetto. Stai dichiarando un valore per la variabile x (in particolare rendendo x sempre equivalente al numero 2) .. primo errore. Quindi, la tua prossima riga dice semplicemente se la variabile x può essere divisa per 2, quindi fai la funzione dispari, altrimenti / se-non fa la funzione pari ... Il problema con questo approccio è che produrrà sempre la funzione pari - mai la funzione dispari - questo è un altro problema / errore. Per favore, educami se sbaglio.
Sean Tank Garvey,

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

2

Spero che questo ti aiuti.

let number = 7;

if(number%2 == 0){      

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

}else{

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

}

Ecco una funzione completa che registrerà sulla console la parità del tuo input.

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

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

  }else{

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

  }
}

1

Si prega di scrivere il seguente codice nella console:

var isEven = function(deep) {

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

Nota: restituirà vero, se il numero inserito è anche falso.


1
grazie per la risposta ma questa è essenzialmente la stessa della risposta accettata, l'hai appena racchiusa in una funzione. Comunque, grazie per il contributo
sadmic Microwave

1

Usa il modulo, ma .. La risposta sopra accettata è leggermente inaccurata. Credo che x sia un tipo di numero in JavaScript che l'operatore dovrebbe essere un doppio incarico anziché un triplo, in questo modo:

x % 2 == 0

Ricorda di dichiarare anche le tue variabili, quindi ovviamente quella riga non può essere scritta autonomamente. :-) Di solito usato come una ifdichiarazione. Spero che questo ti aiuti.


-2

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

array.each {| x | inserisce x se x% 2 == 0}

rubino: D

2 4 6 8 10


1
Ti aggiri da 4chan?
Todd,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.