string
.replace(/a/g, '!')
.replace(/b/g, '#')
.replace(/c/g, '没规律的')
.replace(/d/g, '没规律的')
.replace(/e/g, '没规律的')
// 以下省略20行
.....
以上,像这种字符串替换,源文本很大、高频率调用的情况下
如何写怎么省内存和提高性能呢?
string
.replace(/a/g, '!')
.replace(/b/g, '#')
.replace(/c/g, '没规律的')
.replace(/d/g, '没规律的')
.replace(/e/g, '没规律的')
// 以下省略20行
.....
以上,像这种字符串替换,源文本很大、高频率调用的情况下
如何写怎么省内存和提高性能呢?
第一个回答,既然都用了 map 了那还在 replace 里面写啥/a|b|c|d/
呢?
直接就用纯函数了呗,以后只用配置键值对就行了。
const str = 'STRINGabcd'
let mapReplace = {
'a': '!',
'b': '#',
'c': '没规律',
'd': '没规律的'
}
const replace = ({ str, reg, replacer }) =>
str.replace(new RegExp(reg, 'g'), replacer)
const output = Object
.keys(mapReplace)
.reduce(
(str, reg) => replace({ str, reg, replacer: mapReplace[reg] }),
str
)
console.log(output)
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
3 回答5.1k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决