【发布时间】:2023-04-02 06:50:01
【问题描述】:
在我开发和维护的代码中,我遇到了问题。
我有一个函数,它接受一个查询(类型字符串)并用不同的字符串替换该字符串的子字符串。例如,如果用户输入字符串I have a cat,它将替换为I have a dog。
我的代码有效,但问题是我有数百个这样的子字符串需要替换为不同的子字符串。它在美学上看起来也很糟糕。
var myString;
myString = myString.replace('cat','dog')
.replace('elephant','zebra')
.replace('bird','fish')
// Goes on for hundreds of lines
这一切都在一个函数中,每次调用它都会经历数百次replace 调用。
我可以尝试做的一件事是创建一个对象数组并遍历它。代码看起来像这样。
var animalsArray = [
{'a':'cat','b':'dog'},
{'a':'elephant','b':'zebra'},
{'a':'bird','b':'fish'}
];
然后在我的函数中
function stringReplace(string) {
for (var i = 0; i < animalsArray.length; i++) {
if (string.indexOf(animalsArray[i]['a']) > -1) {
sting = string.replace(animalsArray[i]['a'],animalsArray[i]['b']);
}
}
}
但我不确定这是否会改善我目前将数百个替换调用链接在一起的做法。
我基本上是在优化我当前的代码。最佳做法是什么?
【问题讨论】:
标签: javascript string optimization replace substring