我正在尝试从输入创建一个字符串,但以一种独特的方式格式化。
输入将是单个单词:word1
在第一个输入出现之前字符串将为空,然后字符串 myString
将为 +(-word1)
。
对于第二个输入:word2
,myString
现在需要看起来像:
+(-word1+(-word2))
为清楚起见,第三个输入:word3
,myString
现在将是:
+(-word1+(-word2+(-word3)))
我相信这将需要比普通字符串连接更聪明的东西。我宁愿不使用循环。
是否有原生 Javascript(或可能是 JQuery)函数可以完成创建这样的字符串?
这是我做的
var myString = '';
function someFunction()
{
...
var inputString = document.getElementById('my-input').value;
myString = myString + "+(" + "-" + inputString + ")";
}
然而这是生产
+(-word1)+(-word2)
这是有道理的,因为字符串只是在函数中连接起来,需要发生的是一种插入。是否有一种 Javascript 方法可以使此插入更容易?也许是在当前字符串的倒数第二个空格处插入新字符串?但是它不是一个数组,所以我不知道这里的最佳做法。
最佳答案
不确定这是否是最漂亮的方法,但您可以在单词列表上使用 map ....
const words = ['word1', 'word2', 'word3']
let result = '+' + words.map(w => `(-${w}+`).join('').replace(/\+$/, '') + ''.padStart(words.length, ')')
console.log(result)
关于javascript - 是否有一种 Javascript 方法可以实现嵌套括号的连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56779565/