如何在Javascript中打印N个空格?
在Javascript中,使用如何在Javascript中打印N个空格?,javascript,Javascript,在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个空格,如本问题所示: 有没有一种简单、快速的方法可以让它在Javascript中简单地工作?(比如说,没有使用sprintf开源库或编写函数来实现它?) 更新:,在我的例子中,12实际上是一个变量
console.log("this is %s and %s", foo, bar);
工作,所以它遵循一些C风格,但它不遵循
console.log("%*s this is %s and %s", 12, foo, bar);
其中,%*s
和12
将使其打印出12个空格,如本问题所示:
有没有一种简单、快速的方法可以让它在Javascript中简单地工作?(比如说,没有使用sprintf
开源库或编写函数来实现它?)
更新:,在我的例子中,12实际上是一个变量,例如
(i*4)
,因此它不能是字符串中的硬编码空格。最简单的方法是使用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);
到2020年或更早,您可以使用
''。重复(12)
:
console.log(`${'。重复(12)}hello`);
log(`${'。重复(3)}你好`)代码>@lanzz是的,错过了。我确实理解sprintf,但AFAIK console.log不允许您重复字符。alexn的解决方案实际上可以在我的Chrome、Firefox和Safari上运行Mac@lanzzConsole.log与sprintf的实现不同。我甚至不使用%*s
。这很聪明。我猜在一些时间有限的编程竞赛中,能够做这样的快速技巧可能会让你获得一等奖,而不是二等奖。顺便问一下,你在学校里是否参加过一些Javascript课程,使你如此精通Javascript,并知道如何用Javascript扩展这些课程?也许我在OOP时代之前就接受过CS教育,我认识的大多数同学/同事只是通过学习代码片段来学习Javascript