Encuentra si la variable es divisible por 2


128

¿Cómo puedo determinar si una variable es divisible por 2? Además, necesito hacer una función si es así y hacer una función diferente si no lo es.


66
@SilentGhost: ¿la gente realmente recibe tarea de jQuery hoy en día?
Andy E

44
No sé sobre Andy, pero la gente seguramente sabe cómo estropear sus etiquetas.
SilentGhost

2
@OP: jQuery no es la respuesta a todo lo que posiblemente quieras hacer en JavaScript;)
Mike Atlas

8
@Mike Wrong! ¡Debe usar el complemento aritmético básico jQuery para eso! Ese es el camino a seguir ...: P (Ironía)
Pablo Cabrera

Respuestas:


312

Usar módulo:

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

30
¡quiéralo! simple, fácil, y no me hiciste sentir como un idiota por hacer la pregunta ... que (para todos los demás que aún no lo saben) es un gran problema para los nuevos desarrolladores de jQuery / Javascript.
sadmicrowave

66
@sadmicrowave: todos comenzamos como principiantes en algún momento. El verdadero problema es la falta de tutoriales informativos. Los tutoriales para principiantes absolutos deben aclarar la diferencia entre JavaScript y jQuery y simplemente se sumergen directamente en las cosas de jQuery.
Andy E

3
El primer código que escribí fue en JavaScript, y esa fue una ventana emergente de "bienvenida". El año fue 1997 y fue para mi página de inicio de Geocities. Definitivamente, todos comenzamos en algún lugar (aunque también ayuda un poco la capacitación formal).
Mike Atlas

no debería ser: variable% 2 == 0 Edúcame si me equivoco.
Sean Tank Garvey

28

En serio, ¿no hay un complemento jQuery para cheques pares / impares?

Bueno, ya no: lanzar "Oven", un complemento jQuery bajo la licencia MIT para probar si un número dado es impar / par.

El código fuente también está disponible en http://jsfiddle.net/7HQNG/

Las suites de prueba están disponibles en 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);
    };
})();​

77
Guau. Es gracioso, pero ¿te das cuenta de que alguien realmente usará esto?
Tim Down

77
@Tim Down: ¿Me pregunto si alguien usa ese complemento aritmético básico jQuery ? Siguiente en la lista, un generador de números aleatorios jQuery ;-)
Andy E

9
Hay tantas cosas que puede hacer jQuery, como crear variables, funciones, etc., que todavía se está haciendo con JavaScript sin formato . Simplemente increíble ;-)
Anurag

44
@Andy - ROFL en ese enlace y la imagen SO - doxdesk.com/img/updates/20091116-so-large.gif Creo que la respuesta "use jQuery" alcanzará un máximo histórico en Javascript ahora :)
Anurag

¿Tiene un documento de Word explíqueme? @Anurag
Todd


11

Puede usar el operador de módulo de esta manera, sin necesidad de jQuery. Simplemente reemplace el alertscon su código.

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

11

Puede hacerlo de una mejor manera (hasta un 50% más rápido que el operador de módulo):

impar: x & 1 par:! (x & 1)

Referencia: JavaScript de alto rendimiento, 8. -> Operadores bit a bit


Esta es una gran respuesta, en realidad la mejor. Sin embargo, requiere conocimiento de los operadores Bitwise.
Sean Tank Garvey

8

Tú también puedes:

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

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

Creo que este código es incorrecto / defectuoso. Está declarando un valor para la variable x (específicamente haciendo que x sea siempre equivalente al número 2) .. primer error. Luego, su siguiente línea simplemente dice si la variable x se puede dividir por 2, luego haga la función impar, de lo contrario / si no hace la función par ... El problema con este enfoque es que siempre producirá la función par, nunca la función impar. - Ese es otro problema / error. Por favor, educarme si estoy equivocado.
Sean Tank Garvey

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

2

Espero que esto ayude.

let number = 7;

if(number%2 == 0){      

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

}else{

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

}

Aquí hay una función completa que registrará en la consola la paridad de su entrada.

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

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

  }else{

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

  }
}

1

Por favor escriba el siguiente código en su consola:

var isEven = function(deep) {

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

Nota: devolverá verdadero, si el número ingresado es falso.


1
gracias por la respuesta, pero esto es esencialmente lo mismo que la respuesta aceptada, simplemente lo envuelve en una función De todos modos, gracias por contribuir
sadmicrowave

1

Use Modulus, pero ... La respuesta aceptada arriba es ligeramente inexacta. Creo que debido a que x es un tipo de Número en JavaScript, el operador debería ser una asignación doble en lugar de una asignación triple, así:

x % 2 == 0

Recuerde declarar sus variables también, así que obviamente esa línea no se pudo escribir de forma independiente. :-) Usualmente se usa como una ifdeclaración. Espero que esto ayude.


-2

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

array.each {| x | pone x si x% 2 == 0}

rubí: D

2 4 6 8 10


1
¿Pasas de 4chan?
Todd
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.