我想将以下代码更改为数组,因为每当我想添加要替换的新字符串时,我都必须编写“roman_ok”+number
。如果您要添加数百个字符串,这并不方便。谁能告诉我怎么做吗?
function roman_conversion(format) {
var roman_ok = format.replace(/./gm, convert_text);
var roman_ok2 = roman_ok.replace(/l%r/g, "ll");
var roman_ok3 = roman_ok2.replace(/l%n/g, "ll");
var roman_ok4 = roman_ok3.replace(/nr/g, "ll");
var roman_ok5 = roman_ok4.replace(/l%y/g, "ry");
var roman_ok6 = roman_ok5.replace(/l%w/g, "rw");
var roman_ok7 = roman_ok6.replace(/kn/g, "ngn");
var roman_ok8 = roman_ok7.replace(/kr/g, "ngn");
var roman_ok9 = roman_ok8.replace(/km/g, "ngm");
var roman_ok10 = roman_ok9.replace(/tn/g, "nn");
var roman_ok11 = roman_ok10.replace(/tr/g, "nn");
var roman_ok12 = roman_ok11.replace(/tm/g, "nm");
var roman_ok13 = roman_ok12.replace(/mr/g, "mn");
var roman_ok14 = roman_ok13.replace(/pn/g, "mn");
var roman_ok15 = roman_ok14.replace(/pr/g, "mn");
var roman_ok16 = roman_ok15.replace(/pm/g, "mm");
var roman_ok17 = roman_ok16.replace(/ngr/g, "ngn");
return roman_ok17;
最佳答案
您可以使用reduce
为此:
var replacements = [[/foo/, 'bar'], [/baz/, 'quux'], ...];
function roman_conversion(format) {
return replacements.reduce((prev, curr) => prev.replace(curr[0], curr[1]), format);
}
编辑:此处使用 ES6 箭头函数语法,请随意替换为 function(prev, curr) { ... }
关于javascript - 在javascript中将线性字符串替换操作更改为数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38939687/