console.log
を使用してみたので、複数のオブジェクトを含む配列のコンテンツを確認できます。ただし、console.log
はオブジェクトなどではないというエラーが表示されます。jquery1.6.2を使用していますが、配列は次のようになります。
filters = {dvals:[{'brand':'1', 'count':'1'},
{'brand':'2', 'count':'2'},
{'brand':'3', 'count':'3'}]}
console.log(filters);
私がやりたいことは、array(filters)
の内容をフィルター形式で警告ボックスに書き出すことです(これがconsole.log
がしたと思ったことです)。それ、どうやったら出来るの?
console.log
はメッセージボックスを生成しません。 firebugまたはそれに相当するものを追加せずにIE(Firefoxでも)のどのバージョンでも利用できるとは思わない。
ただし、SafariおよびChromeでは使用できます。 Chromeに言及しているので、この例で使用します。
ウィンドウとそれに対応する開発者ウィンドウを開く必要があります。これを行うには、ページ上の任意の要素を右クリックし、「要素を検査」を選択します。ウィンドウは2つの部分に分割され、開発者の部分が下部になります。 2つの部分の区分にはボタンのあるバーがあり、右端のボタンには「コンソール」というラベルが付いています。コンソールタブに切り替えるには、それをクリックする必要があります。残念ながら、クロムのキーボードでそこに到達する方法がわかりません。 (Mac OS XのSafariでは、command + shift + Iです)
そこに到達すると、そのコンソールからjavascriptを使用して上部に読み込まれているページとやり取りできるようになり、console.log
というメッセージが表示されます。
配列を文字列としてダンプするには、2つの簡単な解決策が考えられます。使用している環境に応じて:
…最新のブラウザではJSONを使用します。
JSON.stringify(filters);
// returns this
"{"dvals":[{"brand":"1","count":"1"},{"brand":"2","count":"2"},{"brand":"3","count":"3"}]}"
…node.jsのようなものでconsole.info()を使用できます
console.info(filters);
// will output:
{ dvals:
[ { brand: '1', count: '1' },
{ brand: '2', count: '2' },
{ brand: '3', count: '3' } ] }
編集:
JSON.stringifyには、さらに2つのオプションのパラメーターが付属しています。 3番目の「スペース」パラメーターは、きれいな印刷を可能にします。
JSON.stringify(
obj, // the object to stringify
replacer, // a function or array transforming the result
spaces // prettyprint indentation spaces
)
例:
JSON.stringify(filters, null, " ");
// returns this
"{
"dvals": [
{
"brand": "1",
"count": "1"
},
{
"brand": "2",
"count": "2"
},
{
"brand": "3",
"count": "3"
}
]
}"
console
オブジェクトはInternet Explorer 8以降で使用できますが、F12を押すかメニューからDeveloper Toolsウィンドウを開いた場合のみです。
IEを閉じるまで、[開発ツール]ウィンドウを再度閉じても使用可能です。
少なくとも現在のバージョンでは、ChormeとOperaには常にconsole
があります。 Firefoxには、Firebugを使用するときにconsole
がありますが、Firebugを使用しない場合もあります。
いずれにせよ、console
出力の使用をオプションにするのは保存アプローチです。その方法の例を次に示します。
if (console) {
console.log('Hello World!');
}
if (console) console.debug('value of someVar: ' + someVar);
Javascriptでオブジェクトをコンソールに出力するのは簡単です。次の構文を使用するだけです。
console.log( object );
または
console.log('object: %O', object);
比較的未知の方法は、オブジェクトまたは配列をテーブルとしてコンソールに出力することです。
console.table(object);
この種のロギングステートメントは、ブラウザ環境内でのみ機能すると言うことが重要だと思います。これをGoogle Chromeで使用しました。開発者コンソール内でconsole.log呼び出しの出力を見ることができます。Webページの任意の要素を右クリックして開き、「検査」を選択します。 「コンソール」タブを選択します。
クライアントのブラウザで誤って残されたコードが失敗しないように、このスニペットをお勧めします。
/* neutralize absence of firebug */
if ((typeof console) !== 'object' || (typeof console.info) !== 'function') {
window.console = {};
window.console.info = window.console.log = window.console.warn = function(msg) {};
window.console.trace = window.console.error = window.console.assert = function(msg) {};
}
空の関数を定義するのではなく、このスニペットは必要に応じて独自のコンソールサロゲートをローリングするための良い出発点でもあります。
Firefox + firebugを使用する場合、console.dir()
が配列出力のダンプに最適です こちらを参照 。
JsonはJavaScript Object Notationの略で、実際にはすべてのjsonはjavascriptオブジェクトなので、配列はすでにjson形式になっています。 divに書き出すには、私が思うに最も簡単なことの1つをたくさん行うことができます:
objectDiv.innerHTML = filter;
objectDivは、jqueryを使用してDOMから選択するdivです。配列の一部をリストしたい場合は、次のようなjavascriptオブジェクトであるため、それらにアクセスできます。
objectDiv.innerHTML = filter.dvals.valueToDisplay; //brand or count depending.
編集:文字列になりたいが、現在ではない(まれなjavascriptがほとんどすべてを文字列として扱う)ものはすべて、組み込みのtoString()
関数を使用します。必要な場合は上の行はfilter.dvals.valueToDisplay.toString();
明確にするための2番目の編集:この回答は、OPのコメントに対する応答であり、彼の元の質問に対する完全な回答ではありません。
Firebugまたは使用しているデバッガーが適切に初期化されていないようです。 console.log()-methodにアクセスしようとすると、Firebugは完全に初期化されますか? Console-Tabを確認します(アクティブに設定されている場合)。
別の可能性として、コード内のどこでもconsole-Objectを自分で上書きすることができます。