首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >同一变量内的多个替换

同一变量内的多个替换
EN

Stack Overflow用户
提问于 2021-10-30 02:29:57
回答 2查看 54关注 0票数 0

我有一根看起来像这样的绳子:

代码语言:javascript
运行
复制
mylist = `<div>some stuff</div>A lot of code in between<span>more stuff</span>`;

我想用things代替some stuff,用many things代替more stuff,所以我这样做:

代码语言:javascript
运行
复制
 mylist = mylist.replace(`some stuff`, 'things');
 mylist = mylist.replace(`more stuff`, 'many things');

这是可行的,但我相信一定有一个更好的方法。应该是什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-10-30 02:31:37

您可以链接replace调用:

代码语言:javascript
运行
复制
mylist = mylist.replace(`some stuff`, 'things').replace(`more stuff`, 'many things');

如果要将这些对存储在对象中以实现可伸缩性,可以循环遍历对象的条目(使用Object.entries),并用其值替换每个键的所有出现情况:

代码语言:javascript
运行
复制
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)

票数 2
EN

Stack Overflow用户

发布于 2021-10-30 02:41:45

您可以首先创建包含key-value of replace-replacementkey-value对象,然后在key-value上迭代,然后用value替换key

这样做更好,因为如果您有多个替换,那么每次只要在对象本身中添加更多的replacer - replacement,它就会工作。

您不必添加额外的replace语句,只需在changes中添加key-value即可。

代码语言:javascript
运行
复制
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)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69776351

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档