Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

401
Vistas
¿Cómo funciona este operador ternario anidado usando javascript?

Estoy tratando de entender qué significa este operador ternario anidado usando javascript.

a continuación se muestra el código,

 const columns = !isUser1Readable ? allColumns.filter(column => !columnIdsUser1.includes(column.id)) : !isUser2Readable ? allColumns.filter(column => !columnIdsUser2.includes(column.id)) : allColumns;

que he entendido?

parece que si isUser1Readable se evalúa como falso, filtra la matriz de todas las columnas de modo que no contenga la columna de columnIdsUser1

si isUser1Readable es verdadero e isUser2Readable es falso, entonces filtra la matriz de todas las columnas de modo que no contenga la columna de columnIdsUser2

Pero, ¿cuándo se asigna allColumns a las columnas?

¿Podría alguien ayudarme a entender qué hace este operador ternario anidado arriba? Gracias.

about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

pero ¿cuándo se asigna allColumns a las columnas?

En el caso restante, es decir, cuando tanto isUser1Readable como isUser2Readable son verdaderos.

La expresión ternaria encadenada se puede interpretar como una secuencia if ... else if ... else :

 let columns; if (!isUser1Readable) { columns = allColumns.filter(column => !columnIdsUser1.includes(column.id)); } else if (!isUser2Readable) { columns = allColumns.filter(column => !columnIdsUser2.includes(column.id)); } else { columns = allColumns; }
about 4 years ago · Juan Pablo Isaza Denunciar

0

El operador condicional¹ es codicioso . La expresión es más clara con sangría:

 const columns = !isUser1Readable ? allColumns.filter(column => !columnIdsUser1.includes(column.id)) : !isUser2Readable ? allColumns.filter(column => !columnIdsUser2.includes(column.id)) : allColumns;
  • Si !isUser1Readable es true , a las columns se les asigna el resultado de allColumns.filter(column => !columnIdsUser1.includes(column.id)) .
  • De lo contrario
    • Si !isUser2Readable es true , a las columns se les asigna el resultado de allColumns.filter(column => !columnIdsUser2.includes(column.id))
    • De lo contrario, las columns se asignan allColumns .

pero ¿cuándo se asigna allColumns a las columnas?

Cuando tanto !isUser2Readable como !isUser2Readable son false .


¹ Aunque la gente lo llama con frecuencia "el operador ternario", en realidad es solo un operador ternario (un operador que acepta tres operandos). Actualmente es el único operador ternario de JavaScript, pero eso podría cambiar. Su nombre es "el operador condicional".

about 4 years ago · Juan Pablo Isaza Denunciar

0

Como el operador ternario se define así

 condition ? exprIfTrue : exprIfFalse
  1. Condición : es la condición que se comprueba
  2. exprIfTrue : es el código que se procesa en caso de que la Condition se evalúe como verdadera
  3. exprIfFalse : es el código que se procesa en caso de que la Condition se evalúe como falsa

El código que proporciona puede ser refactorizado como este

 let allColumns = []; if(!isUser1Readable) { allColumns = allColumns.filter(column => { return !columnIdsUser1.includes(column.id); }); } else if (!isUser2Readable) { allColumns = allColumns.filter(column => { return !columnIdsUser2.includes(column.id); }); }else { columns = allColumns; }

Puede obtener más información sobre el operador condicional (ternario)

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda