我正在使用 stringformat在 node.js 中格式化字符串的库。
var stringFormat = require('stringformat');
stringFormat.extendString();
我正在尝试传递一组参数而不是内联,如下所示:
var formatted = '{0}{1}'.format(params);
代替:
var formatted = '{0}{1}'.format(params[0], params[1]);
但是图书馆不支持这个。
我已经关注了这个问题:nodejs-util-format-passing-an-array 并试过这个:
params.unshift('{0}{1}');
String.prototype.format.apply(String.prototype, params);
还有:
var i = -1;
'{0}{1}...'.format(function() {
i++;
return params[0];
});
而且它们都没有按预期工作。
有什么想法吗?
最佳答案
或者,如果您不想像我在评论中提到的那样使用扩展运算符,您也可以在 ES5 中执行类似的操作;
function formatWithArray(str,arr){
var a = arr[0],
b = arr[1],
c = arr[2],
d = arr[3];
return str.format(a,b,c,d);
}
var formatted = formatWithArray('{0}{1}',params);
最多 4 个参数应该可以正常工作,但在您的特定情况下,最后两个(c 和 d)将未定义。我希望 stringFormat 库不会因为过多的参数而烦恼。
关于带数组的 JavaScript 字符串格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37639444/