🐥

console.log 小技

2023/09/18に公開

ラベル付きで出力する

  • ラベルと、中身を確認したい変数等をカンマ区切りで記述するだけ
  • 以下の例だと、第一引数にラベルとなる文字列、第二引数に中身を確認したい変数をセット
const userData = {
  name: 'yuri',
  age: 25
}
console.log('userData:', userData); //userData: { name: 'yuri', age: 25 }

深い階層にあるオブジェクトを文字列化する

ただのconsole.logだと、下記のように深い階層にあるオブジェクトは中身が確認できない。

userData = [
    ['2023', 
        [
            {name: 'yuri', age: 25}
        ]
    ]
];
console.log(userData); // [ [ '2023', [ [Object] ] ] ]

そういうときは、Node.jsのコアモジュールであるutilのinspect()関数を利用する。
すると、深い階層のオブジェクトも中身が確認できるように文字列化できる。

util.inspect()

  • 第一引数
    • 対象のオブジェクト
  • 第二引数
    • boolean
    • trueの場合、オブジェクトの列挙不可能なシンボルとプロパティが整形結果に含まれる。デフォルトはfalse
  • 第三引数
    • 何階層まで文字列化するかの設定
    • 最大呼び出しスタック・サイズまで再帰するには、Infinityまたはnullを渡す。デフォルトは2。
const util = require('util');
console.log(util.inspect(userData, false, Infinity)); 

// 以下出力結果
//[
//  [ '2023', [ { name: 'yuri', age: 25 } ] ]
//]

参考

https://nodejs.org/api/util.html#utilinspectobject-options

Discussion