operator - Operador ternario con declaraciones de retorno JavaScript
operadores ternarios typescript (5)
Necesito devolver verdadero o falso si selecciono una opción en un menú desplegable.
Este es mi código:
var active = sort.attr(''selected'') ? return true : return false;
Me sale un error de que la primera return
es inesperada.
¿Por qué?
¿por qué no solo esto?
return sort.attr(''selected'');
De los documentos:
Sintaxis
condition ? expr1 : expr2
Parámetros
condición (o condiciones) Una expresión que se evalúa como verdadera o falsa.
expr1, expr2
Expresiones con valores de cualquier tipo.
Debe prestar atención a las Expressions with values of any type
. El return xxx
no es una expresión.
De la wikipedia:
Una expresión es una construcción sintáctica, debe estar bien formada: los operadores permitidos deben tener el número correcto de entradas en los lugares correctos, los caracteres que componen estas entradas deben ser válidos, tener un orden de operaciones claro, etc. de símbolos que violan las reglas de sintaxis no están bien formados y no son expresiones matemáticas válidas.
Entonces, en tu caso, puedes usar:
return sort.attr(''selected'') ? true : false
No puede asignar una declaración de devolución a una variable. Si desea que el valor active
sea true
o false
, simplemente elimine los valores return
:
var active = sort.attr(''selected'') ? true : false;
o tal vez mejor:
var active = sort.prop(''selected'');
ya que .prop
siempre devuelve true
o false
, independientemente del atributo de etiqueta inicial.
Puede regresar de un operador ternario en javascript de esta manera:
return sort.attr(''selected'') ? true : false;
Solo un comentario sobre tu código:
> sort.attr(''selected'')
parece estar usando el método jQuery attr , que solía intentar adivinar lo que quería y devolver el atributo o la propiedad. Creo que en versiones recientes devuelve el atributo siempre.
De todos modos, la presencia del atributo seleccionado solo significa que el elemento (¿un elemento de opción?) Es la opción seleccionada por defecto , no quiere decir que sea la opción actualmente seleccionada. Para eso necesita la propiedad seleccionada (método jQuery prop ). Y dado que la propiedad seleccionada es un booleano:
> sort.attr(''selected'') ? true : return false;
simplemente puede ser:
sort.prop(''selected'');
o sin jQuery:
optionElement.selected;