¿Hay una forma abreviada de la siguiente -taquigrafía para múltiples o expresiones en la sentencia if
if(tld == "com" || tld == "net" || tld == "co" || tld == "org" || tld == "info" || tld == "biz")
{
//do something;
}
¿Hay una forma abreviada de la siguiente -taquigrafía para múltiples o expresiones en la sentencia if
if(tld == "com" || tld == "net" || tld == "co" || tld == "org" || tld == "info" || tld == "biz")
{
//do something;
}
usted podría utilizar una matriz
if(["","com","net","co","org","info","biz"].indexOf(tld) > -1) {
// do something
}
o si está utilizando jQuery:
$.inArray(tld, ["com","net","co","org","info","biz"])
Olvidó '! = -1' ya que' 0' sería un resultado perfectamente válido ('com'). – ThiefMaster
Cuidado con el primer código IF, como una cadena vacía - '[" ",' - también evalúa a * falso *, * indefinido * y * nulo *. Por lo tanto, si ** tld ** fue uno de esos, ¡el primer SI aún pasaría! Mejor uso 'if ([" com "," net "," co "," org "," info "," biz "]. IndexOf (tld)> -1)' –
Usar una expresión regular:
if (/^(com|net|co|org|info|biz)$/i.test(tld)) {
// do something
}
¿cómo se manejará esto si tld es "cot" que contiene "co"? Ok, agregó el inicio y el final como lo publiqué. – hackartist
no es regexp más lento en cuanto a rendimiento? – ShalomSam
@ShalomSam No lo sé, esa no es una micro-optimización que he probado todavía. –
pensaste acerca del uso de sentencia switch? algo como esto:
switch(tld)
{
case 'com':
case 'net':
case 'co':
...
...
// do something for all of them
break;
default:
// if you want you can have default process here
break;
}
pensé en ello ... pero idealmente querrías usar un interruptor cuando tienes diferentes ejecuciones en casos diferentes. Y más, estoy buscando una forma abreviada, sin alargar mi código. Gracias por la respuesta, ¡muy apreciada! – ShalomSam
@Hamish Dice Javascript, Edité las etiquetas en consecuencia. – purtip31
Eche un vistazo a http://stackoverflow.com/a/10479102/298479 - Expliqué bastantes métodos para hacer lo que desea y también se vinculó a una comparación de rendimiento en caso de que le importe. – ThiefMaster
@ purtip31 - Gracias. – ShalomSam