我有一根看起来像这样的绳子:
mylist = `<div>some stuff</div>A lot of code in between<span>more stuff</span>`;
我想用things
代替some stuff
,用many things
代替more stuff
,所以我这样做:
mylist = mylist.replace(`some stuff`, 'things');
mylist = mylist.replace(`more stuff`, 'many things');
这是可行的,但我相信一定有一个更好的方法。应该是什么?
发布于 2021-10-29 18:31:37
您可以链接replace
调用:
mylist = mylist.replace(`some stuff`, 'things').replace(`more stuff`, 'many things');
如果要将这些对存储在对象中以实现可伸缩性,可以循环遍历对象的条目(使用Object.entries
),并用其值替换每个键的所有出现情况:
const obj = {
"some stuff": "things",
"more stuff": "many things"
}
var str = "<div>some stuff</div>A lot of code in between<span>more stuff</span>"
Object.entries(obj).forEach((k,v) => str = str.replace(k,v))
console.log(str)
发布于 2021-10-29 18:41:45
您可以首先创建包含key-value
of replace-replacement
的key-value
对象,然后在key-value
上迭代,然后用value
替换key
。
这样做更好,因为如果您有多个替换,那么每次只要在对象本身中添加更多的replacer - replacement
,它就会工作。
您不必添加额外的replace
语句,只需在changes
中添加key-value
即可。
let mylist = `<div>some stuff</div>A lot of code in between<span>more stuff</span>`;
const changes = {
"some stuff": "things",
"more stuff": "many things",
};
mylist = Object.entries(changes).reduce((str, [k, v]) => str.replace(k, v), mylist);
console.log(mylist)
https://stackoverflow.com/questions/69776351
复制