▲TOPへ戻る

【javascript】連想配列をテーブルできれいに表示する方法

連想配列 table

前回、連想配列の値の取得について書きました。今回は、それを使って表を作成したいと思います。

参考

js
【javascript】オブジェクトの値を取得するObject.keys Object.values Object.entriesの使い方

HTML

  <table class="content-table">
    <thead>
      <tr>
        <th>No.</th>
        <th>段位</th>
        <th>名前</th>
        <th>年齢</th>
      </tr>
    </thead>
    <tbody id="playerList"></tbody>  <!-- ここに配列の中身を表示させる -->
  </table>

CSS

テーブルデザインについては以下を参照

css
【CSS】テーブルを見やすくするデザイン(table design)

javascript

配列

  const players = [
    {
      No: "1",
      grade: "二冠",
      name: "藤井",
      age: 19,
    },
    {
      No: "2",
      grade: "竜王",
      name: "豊島",
      age: 31,
    },
    {
      No: "3",
      grade: "名人",
      name: "渡辺",
      age: 37,
    },
    {
      No: "4",
      grade: "王座",
      name: "永瀬",
      age: 28,
    },
    {
      No: "5",
      grade: "九段",
      name: "羽生",
      age: 50,
    },
    {
      No: "6",
      grade: "九段",
      name: "谷川",
      age: 59,
    },
    {
      No: "7",
      grade: "六段",
      name: "増田",
      age: 23,
    },
    {
      No: "8",
      grade: "五段",
      name: "藤森",
      age: 34,
    },
  ];

表を生成

  const playerList = document.getElementById("playerList");

  players.forEach((player) => {  // 配列の中のオブジェクトの数だけ処理を繰り返す
    const tr = document.createElement("tr");  
    playerList.appendChild(tr); // 表の中に8個の「tr」(行)ができる
    // 1行の中を生成
    const objArray = Object.entries(player);  // オブジェクトを配列に
    objArray.forEach((arr) => { // No, name, age, gradeの4回繰り返す
      const td = document.createElement("td");
      td.textContent = arr[1];  // arr[1]はvalueの部分
      tr.appendChild(td);
    });
  });

完成

これで、配列の中身を足していけば、自動で表が追加されていきます。

No. 段位 名前 年齢

こんな記事も読まれています。

profile

gaoさん

パソコン好きなガオ

コロナ禍によるステイホームを機にプログラミングを学ぶ。パソコンに関してはプロではないが、ちょっと詳しい程度。<