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

224
Visualizações
Condición que solo se satisface en la primera aparición al mapear una matriz en reactjs

Quiero mostrar dollar para ventas brutas, descuentos, impuestos, ventas netas . Pero mi código a continuación muestra dólares solo para ventas brutas .

mi código

 tableHeadings = [ "month", "orders", "gross_sales", "discounts", "tax", "net_sales", ] reportData = [ { "orders": 119, "gross_sales": 21819.610000000008, "net_sales": 21819.610000000008, "discounts": 865.82, "tax": 0, "month": "October 2021" }, { "orders": 7, "gross_sales": 4542.4, "net_sales": 4542.4, "discounts": 40, "tax": 0, "month": "September 2021" }]

mesa

 <tbody> {reportData.length > 0 && tableHeadings.length > 0 && reportData.map((element, index) => ( <tr key={index}> {tableHeadings.map((item, idx) => ( <td key={idx}> {item === ('gross_sales' || 'discounts' || 'tax' || 'net_sales' || 'average_amount' || 'total_spent') && dollar}{' '} {element[item]} </td> ))} </tr> ))} </tbody>;

la página actual se ve como abajo, la página actual

comportamiento esperado expectativa

about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

debería ser

 (item === 'gross_sales' || item === 'discounts' || item === 'tax' || item === 'net_sales' || item === 'average_amount' || item === 'total_spent')

¿Cuál es el problema con su sintaxis?

usted está comprobando con

 item === ('gross_sales' || 'discounts' || 'tax' || 'net_sales' || 'average_amount' || 'total_spent')

Lo que esto hará es evaluar la expresión

 console.log('gross_sales' || 'discounts' || 'tax' || 'net_sales' || 'average_amount' || 'total_spent')

Su salida será 'gross_sales' que es la primera cadena. Entonces su expresión solo funciona con 'gross_sales' . Por lo demás, el valor será falso.

about 4 years ago · Juan Pablo Isaza Relatório

0

Solo está comparando artículos === "ventas_brutas", o necesita comparar cada uno por separado

 Ex: item === "gross_sales" || item === "discounts" etc.

Pero la mejor solución es poner estas opciones en una matriz y luego arrayName.includes(item) , debería dar el resultado esperado.

about 4 years ago · Juan Pablo Isaza Relatório

0

El problema es que no puede agrupar valores OR como lo hizo. Debe indicar la igualdad de item para cada valor.

 <tbody> {reportData.length > 0 && tableHeadings.length > 0 && reportData.map((element, index) => ( <tr key={index}> {tableHeadings.map((item, idx) => ( <td key={idx}> {(item === 'gross_sales' || item === 'discounts' || item === 'tax' || item === 'net_sales' || item === 'average_amount' || item === 'total_spent') && dollar}{' '} {element[item]} </td> ))} </tr> ))} </tbody>;

Lo que hizo en esa instrucción OR siempre devuelve una cadena de gross_sales .

Esto se debe a que gross_sales es real y nunca irá al resto de los valores. Es por eso que solo coincide con 'gross_sales'

 console.log(('gross_sales' || 'discounts' || 'tax' || 'net_sales' || 'average_amount' || 'total_spent')) // logs: 'gross_sales
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