在javascript数组字符串替换中使用扩展语法和格式

时间:2017-04-13 06:47:19

标签: javascript

如果我有一个像[1,2,3]这样的数组,我想用它来填充如下字符串:

the values are (?, ?, ?)

有一种简单的方法吗?

我知道您可以使用...[1,2,3]进行传播,并且将数组转换为['?', '?', '?']很容易,但是当我执行以下操作时它不会起作用:< / p>

the values are (${...['?', '?', '?']})

1 个答案:

答案 0 :(得分:1)

传播并没有真正实现这一点。

从问题中,您是否希望字符串中的?或数组中的值不清楚。所以两者:

如果你真的想要?(字面意思),mapjoin一起做:

`the values are (${theArray.map(() => "?").join(", ")})`

var theArray = [1, 2, 3];
console.log(`the values are (${theArray.map(() => "?").join(", ")})`);

或者String#repeatslice删除最后一个分隔符:

`the values are (${"?, ".repeat(theArray.length).slice(0, -2)})`

var theArray = [1, 2, 3];
console.log(`the values are (${"?, ".repeat(theArray.length).slice(0, -2)})`);

如果您想要这些值,那么只需join

`the values are (${theArray.join(", ")})`

var theArray = [1, 2, 3];
console.log(`the values are (${theArray.join(", ")})`);