配列や連想配列(ハッシュ)、オブジェクトのダンプ

配列や連想配列(ハッシュ)、オブジェクトをダンプする場合、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);

JavaScript逆引きリファレンス一覧へ戻る