でそれを行うことができ、私は同じ問題を抱えていたし、以下のコードを書きました。これはconsole.tableのような完全な機能ではなく、レコードの配列のみを受け入れ、列のリストを取りません。出力も素晴らしくはありませんが、それだけで十分でした。例:
$ console_table([{who:"World",message:"Hello"}
,{who:"My wife",message:"Good Morning!"}])
|who |message |
|World |Hello |
|My wife|Good Morning!|
そしてその背後にあるコード:
// Will be available in the latest Chrome, then I can delete this
function console_table(xs)
{
if (xs.length === 0)
console.log("No data");
else
{
var widths = [];
var cells = [];
for (var i = 0; i <= xs.length; i++)
cells.push([]);
for (var s in xs[0])
{
var len = s.length;
cells[0].push(s);
for (var i = 0; i < xs.length; i++)
{
var ss = "" + xs[i][s];
len = Math.max(len, ss.length);
cells[i+1].push(ss);
}
widths.push(len);
}
var s = "";
for (var x = 0; x < cells.length; x++)
{
for (var y = 0; y < widths.length; y++)
s += "|" + pad(widths[y], cells[x][y]);
s += "|\n";
}
console.log(s);
}
}
function pad(n,s)
{
var res = s;
for (var i = s.length; i < n; i++)
res += " ";
return res;
}
独自のChrome拡張機能を作成することを考えていましたか? – Tadeck
これは有効なオプションですが、アプリのすべてのユーザーがこれを行うことはできません。主な使用例は次のとおりです。お客様は、アプリが遅いと判断してサポートを呼び出します。サポートは、 "あなたのコンソールを開いて、私に結果をコピー/ペーストしてください"と言う。顧客はすべてをコピー/ペーストすることができますが、サポートは結果を検証するかどうかはしません。私は完全な画像を持っていないパフォーマンスデータの電子メールを取得します。それがエラーの可能性を減らすような方法でブラウザに焼き付けられるなら、それは理想的です。 – Christopher
あなたがペーストしたものを得ることでそれを使用できるようにするには、テーブルデータに対して 'JSON.stringify()'を使い、それを取得し、電子メールに貼り付けて送信します。それを受け取った後は、デシリアライズされたデータを取得するだけで、テーブルである必要はありません。それはあなたに合っていますか? – Tadeck