带数组的 JavaScript 字符串格式

标签 javascript arrays node.js string-formatting

我正在使用 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/

相关文章:

java - 在 Java 中,是否有一种内置的或常见的 Stream 允许输出,比如说,5 位数据?

java - ArrayOutOfBounds 异常合并排序

node.js - 在同一命令中运行 Sequelize Migration 和 Node Server 不会启动服务器

javascript - Meteor 基本 HTTP 身份验证

javascript - 将参数传递给没有顺序的函数

javascript - 将带有 ASCII 控制字符的条形码扫描到输入字段中

javascript - 调整jquery中选定文本的字体大小

javascript - 使用 CamanJS 对图像的一部分进行操作

angularjs - 从 OPENSHIFT_DATA_DIR 提供图像的缓存问题

php - 仅使用每个类别 id 之一对数据集进行排序