配列や連想配列(ハッシュ)、オブジェクトのダンプ
配列や連想配列(ハッシュ)、オブジェクトをダンプする場合、console.logを使って開発ツールのコンソールエリアに出力しますが、consoleは古いバージョンのブラウザに対応していなかったり、alertで出力しても中身を展開して出力することができません。
それらを文字列として出力するには、次のような方法で実装できます。
関数定義
var objDump = function(obj, rIndent) {
if (!obj) return '';
var result = '', indent = '\t', br = '\n';
if (rIndent) indent += rIndent;
if (typeof obj === 'object' && !obj.tagName) {
result += '[ Object ] ->' + br;
for (var key in obj) {
result += indent + key + ' = ';
result += typeof obj[key] === 'object' ? objDump(obj[key], indent) : obj[key];
result += br;
}
} else {
result = obj;
}
return String(result);
};
使い方
引数
引数名 | 型 | 説明 | |
---|---|---|---|
第一引数 必須 |
obj | Any | 文字列に変換する配列や連想配列(ハッシュ)などのオブジェクト |
第二引数 | rIndent | string | 初期で広げるインデント |
戻り値
文字列に変換されたオブジェクトを返します。
サンプルコード
JavaScript
var element = document.createElement('div'),
arr = [1, '2', 'abc', [1, 2], false, {a : 3, b : 4, c : ['d', 'e', {f : 5, g : 6}]}, element];
var result = objDump(arr);
alert(result);