value
を文字列にすると、どのようにしてconsole.log(value)
のようにフォーマットできますか?console.log日付とオブジェクトのフォーマット
console.log
で提供されているデフォルトの書式を壊さずに、私が印刷している各値に追加の詳細を追加する必要があります。簡単な値の場合は簡単ですが、Date
とObject
のようなタイプの場合は、より複雑です。
console.log
と一貫性のある方法はありますか?つまり、value
をconsole.log(value)
から取得するのと同じ文字列にするにはどうすればよいですか?
私は単純なライブラリmanakinを実装しようとしています。
'use strict';
(function() {
var error = console.error, warn = console.warn;
console.error = function() {
var a = arguments;
error.apply(this, Object.keys(a).map(function (key) {
return "\u001b[31m" + a[key] + "\u001b[0m";
}));
};
console.warn = function() {
var a = arguments;
warn.apply(this, Object.keys(a).map(function (key) {
return "\u001b[33m" + a[key] + "\u001b[0m";
}));
};
})();
私が午前問題は種類Date
とObject
のために出力が異なることである:ここではその完全なソースコードです
// without manakin:
console.warn({value: 1});
//=> { value: 1 }
// with manakin:
console.warn({value: 1});
//=> [object Object]
と私はそれが一貫したいです。
は終わりでは
を解決し、私は(それが小さい)manakinソースコードを参照してください、それのNode.jsとすべてのブラウザで、両方ともにすべての作業にする方法を考え出しました。
Node.jsとブラウザの実装が異なる必要がありました。具体的には、Node.jsではutil.inspect
を使用します。
出力例を表示できますか? – JordanHendrix
@JordanHendrix私は完全なコードを追加しました;) –
単に置く; 'console.log'が' printf'のようなものなら、OPは 'sprintf'を望んでいます。 – noisypixy