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

209
Views
nodejs ejs renderizar objeto de matriz en la tabla

Buen día necesito escribir una tabla desde una base de datos y no puedo acceder a los valores, si el arreglo es mayor a 1... Si lo hago así:

 //spielzeiten var spielzeitenArr = [{ spzeit: "", spielzeit_id: "", }]; var spzeitData = await myDB.selectSpielzeit(); for (var i = 0; i < 1/*spzeitData.length*/; i++) { spielzeitenArr[i].spzeit = "meine Zeit" /*spzeitData.spzeit*/; spielzeitenArr[i].spielzeit_id = "meine ID"/*spzeitData.spielzeit_id*/; } res.render('index', { firmen: firmanameArr, block: blocknameArr, datei: dateinameArr, jinglein: jingleinArr, jingleout: jingleoutArr, szdata: spielzeitenArr });

y en el lado ejs se ve así:

 <table id="todoTable"> <tr> <td class="tdList">Datum</td> <td class="tdList">Zeit</td> <td class="tdList">Start Jingle</td> <td class="tdList">End Jingle</td> <td class="tdList">Name</td> <td class="tdList"> <div class="select-wrapper"> <select id="categoryFilter" class="selectCompany"></select> </div> </td> <% szdata.forEach((item) => { %> <tr></tr> <td><%= item.spzeit %></td> <td><%= item.spielzeit_id %></td> <% }); %> </table>

si uso mi valor codificado, funciona. Pero si trato de cambiar el valor de i a 2 o más, me da un error... ¿por qué es así?

Muchas gracias por la ayuda!

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Está inicializando su matriz spielzeiten con una longitud de 1 y no aumentando su tamaño si tiene más de un registro. Por lo tanto, por supuesto, si intenta acceder a un spielzeiten[i].spzeit con un índice diferente de 0, obtendrá un error.

Probablemente debería inicializar su matriz como una matriz vacía y agregar nuevos elementos durante el ciclo.

 spielzeiten = []; for (let i = 0; i < spzeitData.length; i++) { spielzeiten.push({ spzeit: spzeitData[i].spzeit, id: spzeitData[i].spielzeit_id }); }

También puede usar la función Array.map para inicializar directamente su matriz

 let spielzeiten = spzeitData.map(d => ({ spzeit: d.spzeit, id: d.spielzeit_id }));
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!