Table of Contents

Web Development Lesson 3 - Tablas

Javascript Arrays and Loops

Objective

We'll continue building our table of stats on the Colombia team, but we'll do it more efficiently with javascript by using arrays and loops.

Setup

HTML

<table>
  <thead>
    <tr>
      <th>Name</th>
      <th>Surname</th>
      <th>Nationality</th>
      <th class="age">Age</th>
      <th>Position</th>
    </tr>
  </thead>
  <tbody>
  </tbody>
</table>

CSS

td, th {
  border-width: 1px;
  border-style: solid;
}

td {
  padding-left: 10px;
  padding-right: 10px;
  padding-top: 10px;
  padding-bottom: 10px;
}

table {
  border-collapse: collapse;
}

#carlos {
  font-style: italic;
}

.age {
  background-color: yellow;
}

#carlos .age {
  font-weight: 900;
}

td.age {
  font-size: 150%;
}

Arrays

ospinaRemirez = ['David', 'Ospina Ramirez', 'Colombia', 33, 'Portero'];
statsRow  = "<td>" + ospinaRamirez[0] + "</td>";
statsRow  = statsRow + "<td>" + ospinaRamirez[1] + "</td>";
statsRow += "<td>" + ospinaRamirez[2] + "</td>";
statsRow += "<td>" + ospinaRamirez[3] + "</td>";
statsRow += "<td>" + ospinaRamirez[4] + "</td>";
// add row to table
tableBody = document.getElementsByTagName("tbody")[0];
newRow    = tableBody.insertRow(0);
newRow.innerHTML = statsRow;
ospinaRamirez = ['David', 'Ospina Ramirez', 'Colombia', 33, 'Portero'];
statsRow  = "<td>" + ospinaRamirez[0] + "</td>";
statsRow += "<td>" + ospinaRamirez[1] + "</td>";
statsRow += "<td>" + ospinaRamirez[2] + "</td>";
statsRow += "<td>" + ospinaRamirez[3] + "</td>";
statsRow += "<td>" + ospinaRamirez[4] + "</td>";

// add row to table
tableBody = document.getElementsByTagName("tbody")[0];
newRow    = tableBody.insertRow(0);
newRow.innerHTML = statsRow;

Multidimensional Arrays

players = [
  ['David', 'Ospina Ramirez', 'Colombia', 33, 'Portero'],
  ['Carlos', 'Eccehomo Cuesta Figueroa', 'Colombia', 22, 'Defensa'],
  ['Juan Guillermo', 'Cuadrado Bello', 'Colombia', 33, 'Centrocampista'],
  ['Radamel Falcao', 'García Zárate', 'Colombia', 35, 'Delantero']
          ];
// loop through all players
for (p = 0; p < players.length; p++) {
}
  // create stats string
  statsRow  = "<td>" + players[p][0] + "</td>";
  statsRow += "<td>" + players[p][1] + "</td>";
  statsRow += "<td>" + players[p][2] + "</td>";
  statsRow += "<td>" + players[p][3] + "</td>";
  statsRow += "<td>" + players[p][4] + "</td>";
  tableBody = document.getElementsByTagName("tbody")[0];
  newRow = tableBody.insertRow(p);
  newRow.innerHTML = statsRow;
players = [
  ['David', 'Ospina Ramirez', 'Colombia', 33, 'Portero'],
  ['Carlos', 'Eccehomo Cuesta Figueroa', 'Colombia', 22, 'Defensa'],
  ['Juan Guillermo', 'Cuadrado Bello', 'Colombia', 33, 'Centrocampista'],
  ['Radamel Falcao', 'García Zárate', 'Colombia', 35, 'Delantero']
          ];
          
tableBody = document.getElementsByTagName("tbody")[0];

// loop through all players
for (p = 0; p < players.length; p++) {
  // create stats string
  statsRow  = "<td>" + players[p][0] + "</td>";
  statsRow += "<td>" + players[p][1] + "</td>";
  statsRow += "<td>" + players[p][2] + "</td>";
  statsRow += "<td>" + players[p][3] + "</td>";
  statsRow += "<td>" + players[p][4] + "</td>";
  
  // add row to table
  newRow = tableBody.insertRow(p);
  newRow.innerHTML = statsRow;
}

Next: Ejercicio