Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

225
Views
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 answers
Answer question

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 Report

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!