我正在使用 util.format 来格式化这样的字符串:
util.format('My name is %s %s', ['John', 'Smith']);
事实上,第二个参数是一个数组:['John', 'Smith']
,阻止我的代码替换第二个 %s。但我需要它是一个数组,因为我不知道字符串可能包含的参数的确切数量。
你有办法解决我的问题吗? 提前致谢。
编辑: 包含占位符的字符串不是预定义的静态字符串。我从文件中读取它,因此占位符可能位于字符串中的任何位置。出于同样的原因,我也不知道占位符的数量。
最佳答案
如果您不知道该数组中有多少个变量,您怎么知道要在您的字符串中定义多少个占位符?
我建议您只使用一个占位符并且只使用 .join()
数组,比如
util.format('My name is %s', ['John', 'Smith'].join(' '));
罢工><罢工>罢工>
更新
我想我错了,你可以使用 JavaScript Function.prototype.apply
将参数从数组源传递给函数。这可能看起来像
util.format.apply(util,['My name is %s %s','John', 'Smith']);
当然你需要.unshift()
您的占位符字符串也事先放入该数组中。
关于javascript - nodeJS util.format 传递一个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23652341/