Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

405
Visualizações
¿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 Respostas
Responde à pergunta

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 Relatório

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda