Foros del Web » Programando para Internet » Javascript »

Duda con switch en JS

Estas en el tema de Duda con switch en JS en el foro de Javascript en Foros del Web. Hola! resulta que no se como hacer que esto funcione : Código: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código Javascript : Ver original switch ( Myvariable. length ) { ...
  #1 (permalink)  
Antiguo 05/05/2012, 09:15
 
Fecha de Ingreso: febrero-2012
Mensajes: 49
Antigüedad: 12 años, 8 meses
Puntos: 2
Duda con switch en JS

Hola!

resulta que no se como hacer que esto funcione :

Código:


Código Javascript:
Ver original
  1. switch(Myvariable.length){
  2.             case (<3):
  3.             (codigo);
  4.             break;
en la linea:

case (<3) : el debugger me lanza error

No se como utilizar en Switch los operadores logicos, < / <= / > / >= .. ect :¿como se hace?
  #2 (permalink)  
Antiguo 05/05/2012, 11:41
Avatar de chwc  
Fecha de Ingreso: julio-2008
Ubicación: Buenos Aires ! :D
Mensajes: 814
Antigüedad: 16 años, 3 meses
Puntos: 103
Respuesta: Duda con switch en JS

creo que no se puede, te recomendaria usar if en vez de switch, lo que si podes hacer es
case 0:
case 1:
case 2:
case 3:
haceEsto();
break;

saludos
  #3 (permalink)  
Antiguo 05/05/2012, 11:42
 
Fecha de Ingreso: febrero-2012
Mensajes: 49
Antigüedad: 12 años, 8 meses
Puntos: 2
Respuesta: Duda con switch en JS

ya, el problema es cuando tienes 1.000 a 10.000 opciones, seria util poder definir una condicion como < o >= ¿no crees?
  #4 (permalink)  
Antiguo 05/05/2012, 12:37
Avatar de chwc  
Fecha de Ingreso: julio-2008
Ubicación: Buenos Aires ! :D
Mensajes: 814
Antigüedad: 16 años, 3 meses
Puntos: 103
Respuesta: Duda con switch en JS

pero, de 1000 a 10000 opciones... estas seguro de lo que estas haciendo ???
para que vas a hacer un switch tan grande ???
  #5 (permalink)  
Antiguo 05/05/2012, 13:02
 
Fecha de Ingreso: febrero-2012
Mensajes: 49
Antigüedad: 12 años, 8 meses
Puntos: 2
Respuesta: Duda con switch en JS

Es un ejemplo un poco extremo, lo que intento aprender es como utilizar los operadores lógicos en este bucle.
  #6 (permalink)  
Antiguo 05/05/2012, 13:19
Avatar de chwc  
Fecha de Ingreso: julio-2008
Ubicación: Buenos Aires ! :D
Mensajes: 814
Antigüedad: 16 años, 3 meses
Puntos: 103
Respuesta: Duda con switch en JS

me parece que no se puede
  #7 (permalink)  
Antiguo 05/05/2012, 13:55
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años, 6 meses
Puntos: 1485
Respuesta: Duda con switch en JS

buenas,
@avend. tal como te indican, no se puede usar un operador de comparación en un case. en realidad si puedes usarlo pero no tiene el resultado que esperas. en un switch/case se compara el switch directamente con el case, y solo si coincide entonces se interpreta el bloque. cuando tu usas un operador comparativo, independientemente donde lo apliques, el resultado es un valor booleano. por tanto, en un switch/case estarías comparando el valor con un boolean. fíjate que no es lo mismo que un if, el cual se interpreta si la condición es cierta.

Código:
var value = 0;
switch(value){
case value > 0: console.log('mayor que 0'); break; // no se interpreta porque 0 != false
case value < 0: console.log('menor que 0'); break; // no se interpreta porque 0 != false
case value == 0: console.log('igual a 0'); break; // no se interpreta porque 0 != true
case 0: console.log('0'); break; // se interpreta porque se compara value con 0 y son iguales
}
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #8 (permalink)  
Antiguo 05/05/2012, 16:55
 
Fecha de Ingreso: febrero-2012
Mensajes: 49
Antigüedad: 12 años, 8 meses
Puntos: 2
Respuesta: Duda con switch en JS

No os imagináis lo que aprendo en este foro! gracias a ambos!

Etiquetas: logicos, operadores, switch
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:33.