在终端中运行JavaScript(使用rhino),我如何使用print()函数以单行打印?
在使用rhino运行JavaScript时,我想通过print()函数在一行中打印内容,但是遇到了问题。下面是我的代码:
Things =["car","building"] res ="first" for (var i = Things.length - 1; i >= 0; i--) { res=res+Things[i] } print(res);
然而,运行后输出的结果并不是我期望的在一行中打印所有内容。问题的原因是在循环中的每一次迭代中,我将新的内容添加到res变量中,并使用print()函数将其打印出来。由于print()函数会在每次调用时换行,所以导致了每个元素都被打印在了不同的行。
为了解决这个问题,我可以使用不带换行符的print()函数来实现在一行中打印所有内容。下面是修改后的代码:
Things =["car","building"] res ="first" for (var i = Things.length - 1; i >= 0; i--) { res=res+Things[i] } print(res, false);
在这个修改后的代码中,我在print()函数的参数中传入了一个false值,表示不换行。这样,所有的内容将会在一行中打印出来。
通过以上的修改,我成功地解决了在使用rhino运行JavaScript时通过print()函数在一行中打印内容的问题。
问题原因:在使用rhino在终端中运行JavaScript时,使用print()函数进行打印时,想要在一行中打印输出内容。
解决方法:
1. 创建一个数组,并使用空白分隔符进行连接:print(['uno','dos','tres'].join("")); // 输出 "unodostres"
2. 不需要循环。在连接数组之前,需要先创建数组(而不是打印一个独立的字符串,然后循环遍历数组)。
3. 如果想要反转数组的打印顺序(看起来像是你的循环正在做的事情),只需在join()
之前对数组进行reverse()
操作:print(['uno','dos','tres'].reverse().join("")); // 输出 "tresdosuno"
以上就是解决这个问题的方法。