基本上我想从
转动数组["{ test1, test2 }", "test3", "{test4, test5}"]
到
["test1","test2","test3","test4","test5"]
我使用正则表达式,matchTest是保存正则表达式的变量,匹配单词并使用匹配填充此数组,并将数组固定在同一循环中。
while (regexMatches = matchTest.exec(sourceCode)) {
testArray.push(regexMatches[1].replace(/\W/g, " ").split(" "));
testArray = [].concat(...testArray);
testArray = testArray.filter(testArray => testArray != '');
}
我这样做的方式有效,但看起来很混乱。如何改善这一点的任何帮助将不胜感激。
答案 0 :(得分:3)
我使用.reduce()
如下:
var input = ["{ test1, test2 }", "test3", "{test4, test5}"]
var output = input.reduce((acc, v) => {
acc.push(...v.replace(/[^\w,]/g,"").split(","))
return acc
}, [])
console.log(output)
也就是说,对于数组中的每个项目,首先删除所有不是单词字符或逗号的字符,然后用逗号分割,然后将结果推送到输出数组中。
答案 1 :(得分:3)
var array = ["{ test1, test2 }", "test3", "{test4, test5}"];
var output = array.join(',').replace(/[^\w,]/g,'').split(',');
答案 2 :(得分:0)
你应该放match
var string = '["{ test1, test2 }", "test3", "{test4, test5}"]';
var array = string.match(/\w+\d+/g);
console.log(array);