Encontre se a variável é divisível por 2

128

Como faço para descobrir se uma variável é divisível por 2? Além disso, preciso fazer uma função, se for, e fazer uma função diferente, se não for.

sadmicrowave
fonte
6
@ SilentGhost: as pessoas realmente fazem trabalhos de casa com jQuery hoje em dia?
Andy E
4
Andy não sabe disso, mas as pessoas certamente sabem como estragar suas tags.
SilentGhost
2
@OP: jQuery não é a resposta para tudo o que você poderia possivelmente querer fazer em JavaScript;)
Mike Atlas
8
@Mike Wrong! Você deve usar o plugin aritmético básico do jQuery para isso! Isso é o caminho a percorrer ...: P (Ironia)
Pablo Cabrera

Respostas:

313

Usar módulo:

// Will evaluate to true if the variable is divisible by 2
variable % 2 === 0  
Andy E
fonte
30
adoro! simples, fácil e você não me fez sentir como um idiota por fazer a pergunta ... o que (para todos os outros que ainda não sabem) é importante para os novos desenvolvedores de jQuery / Javascript.
Sadmicrowave
6
@smicrowave: todos nós começamos como iniciantes em algum momento. O verdadeiro problema é a falta de tutoriais informativos por aí. Os tutoriais para iniciantes absolutos devem esclarecer a diferença entre JavaScript e jQuery e eles simplesmente se aprofundam nas coisas do jQuery.
Andy E
3
O primeiro código que escrevi foi em JavaScript e foi um pop-up de caixa de alerta de "bem-vindo". O ano era 1997 e era para a minha página inicial do Geocities. Definitivamente, todos começamos em algum lugar (alguns treinamentos formais também ajudam).
Mike Atlas
não deveria ser: variável% 2 == 0 Me informe se estou errado.
Sean Tank Garvey
28

Sério, não há plugin jQuery para verificações pares / ímpares?

Bem, não é mais - lançar "Oven" um plugin jQuery sob a licença MIT para testar se um determinado número é Odd / Even.

O código-fonte também está disponível em http://jsfiddle.net/7HQNG/

As suítes de teste estão disponíveis em 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);
    };
})();​
Anurag
fonte
7
Uau. Engraçado, mas você percebe que alguém realmente usará isso?
Tim Down
7
@ Tim Down: Gostaria de saber se alguém usa esse plugin aritmético básico jQuery ? A seguir, na lista, um gerador de números aleatórios jQuery ;-) #
217 E Andy
9
Há muito que o jQuery pode fazer, como criar variáveis, funções etc., que ainda está sendo feito com JavaScript bruto . Apenas ;-) inacreditável
Anurag
4
@Andy - ROFL no link e na imagem SO - doxdesk.com/img/updates/20091116-so-large.gif Eu acho que a resposta "use jQuery" atingirá um nível mais alto em Javascript agora :)
Anurag
Você tem documento do word explicar me use isso? @Anurag
Todd
11

Você pode usar o operador de módulo como este, sem necessidade de jQuery. Apenas substitua alertspor seu código.

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

Você pode fazer isso de uma maneira melhor (até 50% mais rápido que o operador de módulo):

ímpar: x & 1 par:! (x & 1)

Referência: JavaScript de Alto Desempenho, 8. -> Operadores Bitwise

Klapaucjusz TF
fonte
Esta é uma ótima, na verdade, a melhor resposta. No entanto, requer conhecimento dos operadores Bitwise ..
Sean Tank Garvey
8

Você também pode:

if (x & 1)
 itsOdd();
else
 itsEven();
Alex K.
fonte
4
var x = 2;
x % 2 ? oddFunction() : evenFunction();
Pablo Cabrera
fonte
Eu acho que esse código está errado / com defeito. Você está declarando um valor para a variável x (especificamente tornando x sempre equivalente ao número 2) .. primeiro erro. Então, sua próxima linha simplesmente diz que se a variável x pode ser dividida por 2, faça a função ímpar, caso contrário / faça a função par ... O problema dessa abordagem é que ela sempre produzirá a função par - nunca a função ímpar - isso é outro problema / erro. Por favor, me informe se estou errado.
Sean Tank Garvey
4
if (x & 1)
 itIsOddNumber();
else
 itIsEvenNumber();
sagar
fonte
2

Espero que isto ajude.

let number = 7;

if(number%2 == 0){      

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

}else{

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

}

Aqui está uma função completa que registrará no console a paridade de sua entrada.

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

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

  }else{

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

  }
}
Edgar256
fonte
1

Escreva o seguinte código no seu console:

var isEven = function(deep) {

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

Observação: ele retornará verdadeiro, se o número digitado for falso.

Deepak Upadhyay
fonte
1
obrigado pela resposta, mas esta é essencialmente a mesma que a resposta aceita, você acabou de agrupá-la em uma função. De qualquer forma, obrigado por contribuir
sadmicrowave
1

Use o Módulo, mas .. A resposta acima aceita é um pouco imprecisa. Eu acredito que x é um tipo de número em JavaScript que o operador deve ser uma atribuição dupla em vez de uma atribuição tripla, da seguinte forma:

x % 2 == 0

Lembre-se de declarar suas variáveis ​​também, portanto, obviamente, essa linha não pode ser escrita autônoma. :-) Geralmente usado como uma ifdeclaração. Espero que isto ajude.

Sean Tank Garvey
fonte
-2

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

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

ruby: D

2 4 6 8 10

SteveO
fonte
1
Você anda do 4chan?
Todd