7

Javascriptでは、を使用して印刷するメソッド

console.log("this is %s and %s", foo, bar);

動作するので、いくつかの C スタイルに従いますが、従いません。

console.log("%*s this is %s and %s", 12, foo, bar);

%*sとは12、この質問のように 12 個のスペースを出力するようにするためのものです: In Objective-C, how to print out N space? (stringWithCharacters を使用)

Javascriptで簡単に動作させるための短くて簡単な方法はありますか? (たとえば、sprintfオープンソース ライブラリを使用したり、それを行う関数を作成したりせずに?)

更新:、私の場合、 12 は実際には などの変数である(i * 4)ため、文字列内にハードコードされたスペースにすることはできません。

4

2 に答える 2

16

最も簡単な方法は、Array.join を使用することです。

console.log("%s this is %s and %s", Array(12 + 1).join(" "), foo, bar);

配列サイズにはN + 1が必要であることに注意してください。


関数が不要だと言ったことは知っていますが、これを頻繁に行うと、拡張メソッドがよりクリーンになります。

String.prototype.repeat = function(length) {
 return Array(length + 1).join(this);
};

これにより、次のことが可能になります。

console.log("%s this is %s and %s", " ".repeat(12), foo, bar);
于 2012-10-01T07:37:25.170 に答える