Table of Contents

Web Development Lesson 4 - Tables

Javascript Multidimensional Arrays

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

team.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>

style.css

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

td {
  padding: 10px;
}

table {
  border-collapse: collapse;
}

#carlos {
  font-style: italic;
}

.age {
  background-color: yellow;
}

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

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

team.js

window.onload = function () {

}

Arrays

window.onload = function () {
    // generate player data
    player = ['David', 'Ospina Ramirez', 'Colombia', 33, 'Portero'];
}
    // create row text
    statsRow  = "<tr>";
    statsRow += "<td>" + player[0] + "</td>";
    statsRow += "<td>" + player[1] + "</td>";
    statsRow += "<td>" + player[2] + "</td>";
    statsRow += "<td>" + player[3] + "</td>";
    statsRow += "<td>" + player[4] + "</td>";
    statsRow += "</tr>";
    // add row to table
    tableBody = document.getElementsByTagName("tbody")[0];
    newRow    = tableBody.insertRow(0);
    newRow.innerHTML = statsRow;
window.onload = function () {
    // generate data
    player = ['David', 'Ospina Ramirez', 'Colombia', 33, 'Portero'];

    // create row text
    statsRow  = "<tr>";
    statsRow += "<td>" + player[0] + "</td>";
    statsRow += "<td>" + player[1] + "</td>";
    statsRow += "<td>" + player[2] + "</td>";
    statsRow += "<td>" + player[3] + "</td>";
    statsRow += "<td>" + player[4] + "</td>";
    statsRow += "</tr>";

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

Functions

function createRowText() {
    
}
function createRowText() {
    statsRow  = "<tr>";
    statsRow += "<td>" + player[0] + "</td>";
    statsRow += "<td>" + player[1] + "</td>";
    statsRow += "<td>" + player[2] + "</td>";
    statsRow += "<td>" + player[3] + "</td>";
    statsRow += "<td>" + player[4] + "</td>";
    statsRow += "</tr>";
}
function createRowText(player) {
    statsRow  = "<tr>";
    statsRow += "<td>" + player[0] + "</td>";
    statsRow += "<td>" + player[1] + "</td>";
    statsRow += "<td>" + player[2] + "</td>";
    statsRow += "<td>" + player[3] + "</td>";
    statsRow += "<td>" + player[4] + "</td>";
    statsRow += "</tr>";
    return 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']
              ];
// create text
for (p = 0; p < players.length; p++) {

}
        console.log(p);
        // create row text
        statsRow = createRowText(players[p]);
    for (p = 0; p < players.length; p++) {
        console.log(players[p]);
        // create row text
        statsRow = createRowText(players[p]);

        // add row to table
        tableBody = document.getElementsByTagName("tbody")[0];
        newRow    = tableBody.insertRow(0);
        newRow.innerHTML = statsRow;
    }
        newRow    = tableBody.insertRow(p);
window.onload = function () {
    // generate data
    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];

    // display data
    for (p = 0; p < players.length; p++) {
        // console.log(players[p]);
        // create row text
        statsRow = createRowText(players[p]);

        // add row to table
        newRow    = tableBody.insertRow(p);
        newRow.innerHTML = statsRow;
    }
}

function createRowText(player) {
    statsRow  = "<tr>";
    statsRow += "<td>" + player[0] + "</td>";
    statsRow += "<td>" + player[1] + "</td>";
    statsRow += "<td>" + player[2] + "</td>";
    statsRow += "<td>" + player[3] + "</td>";
    statsRow += "<td>" + player[4] + "</td>";
    statsRow += "</tr>";
    return statsRow;
}

Next: Exercise