如何在Javascript中打印出N个空格?

时间:2012-10-01 07:35:21

标签: javascript

在Javascript中,使用

打印出来的方法
console.log("this is %s and %s", foo, bar);

有效,所以它遵循一些C风格,但它不遵循

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

%*s12将打印出12个空格,如下所示:In Objective-C, how to print out N spaces? (using stringWithCharacters)

是否有简短快捷的方法让它在Javascript中运行? (比如,不使用sprintf开源库或编写函数来执行此操作?)

更新:,在我的情况下,12实际上是一个变量,例如(i * 4),所以这就是为什么它不能是字符串中的硬编码空格。

2 个答案:

答案 0 :(得分:11)

最简单的方法是使用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);

答案 1 :(得分:3)

截至2020年(可能更早),您可以使用' '.repeat(12)

console.log(`${' '.repeat(12)}hello`);
console.log(`${' '.repeat(3)}hello`);