console.table でデータを見やすく表示 - JavaScript

console.table は配列やオブジェクトを表形式で表示するメソッドです。データの一覧を確認したいときや、複数のオブジェクトを比較したいときに威力を発揮します。

基本的な使い方

配列を渡すと、インデックスと値が表形式で表示されます。

const fruits = ['りんご', 'みかん', 'ぶどう'];
console.table(fruits);
(index)Values
0りんご
1みかん
2ぶどう

オブジェクトの配列を表示

実務で最もよく使うパターンです。各オブジェクトのプロパティが列になります。

const users = [
  { name: 'Alice', age: 30, city: 'Tokyo' },
  { name: 'Bob', age: 25, city: 'Osaka' },
  { name: 'Charlie', age: 35, city: 'Nagoya' }
];

console.table(users);
(index)nameagecity
0Alice30Tokyo
1Bob25Osaka
2Charlie35Nagoya

console.log では展開しないと中身が見えませんが、console.table ならひと目で比較できます。

表示する列を指定する

第 2 引数に配列を渡すと、表示する列を絞り込めます。

const users = [
  { name: 'Alice', age: 30, city: 'Tokyo', email: 'alice@example.com' },
  { name: 'Bob', age: 25, city: 'Osaka', email: 'bob@example.com' }
];

console.table(users, ['name', 'city']);
(index)namecity
0AliceTokyo
1BobOsaka

プロパティが多いオブジェクトで、必要な情報だけを見たいときに便利です。

単純なオブジェクトを表示

配列でない普通のオブジェクトも表形式で表示できます。

const config = {
  apiUrl: 'https://api.example.com',
  timeout: 5000,
  retryCount: 3
};

console.table(config);
(index)Values
apiUrlhttps://api.example.com
timeout5000
retryCount3

キーが行のラベルになります。

ネストしたオブジェクト

ネストしたオブジェクトの場合、第 1 階層のキーが行になります。

const data = {
  user1: { name: 'Alice', score: 85 },
  user2: { name: 'Bob', score: 92 },
  user3: { name: 'Charlie', score: 78 }
};

console.table(data);
(index)namescore
user1Alice85
user2Bob92
user3Charlie78

Map と Set

Map や Set も console.table で表示できます。

const map = new Map([
  ['a', 1],
  ['b', 2],
  ['c', 3]
]);

console.table(map);
(index)KeyValue
0a1
1b2
2c3

実践例:API レスポンスの確認

API から取得したデータを確認するときに重宝します。

fetch('/api/products')
  .then(res => res.json())
  .then(products => {
    console.table(products, ['id', 'name', 'price']);
  });

必要な列だけを指定することで、大量のデータでも見やすくなります。

DOM 要素の一覧

querySelectorAll で取得した要素リストも表示できます。

const buttons = document.querySelectorAll('button');
console.table(buttons, ['innerText', 'className', 'disabled']);

ページ上の要素を俯瞰して確認したいときに使えます。

注意点

console.table はあくまでデバッグ用です。本番コードに残さないよう注意しましょう。また、データ量が非常に多い場合はブラウザの動作が重くなることがあるため、適宜フィルタリングして使うのがおすすめです。