Javascript 替换字符串数组中字符串中的单词
我收到一个我想从某个单词中清除的字符串,我试图为此创建一个函数,但它不起作用:Javascript 替换字符串数组中字符串中的单词,javascript,replace,Javascript,Replace,我收到一个我想从某个单词中清除的字符串,我试图为此创建一个函数,但它不起作用: export const cleanArrondissements = async (city) => { const arrondissements = [ 'Arrondissement', 'arrondissement', '1er','2e','3e', '4e', '5e', '6e', '7e', '8e', '9e', '10e','11e','12e','13e','14e', '15e
export const cleanArrondissements = async (city) => {
const arrondissements = [ 'Arrondissement', 'arrondissement', '1er','2e','3e', '4e', '5e', '6e', '7e', '8e', '9e', '10e','11e','12e','13e','14e', '15e', '16e', '17e', '18e', '19e', '20e']
arrondissements.forEach(element => {
city.replace(element, '')
});
return city;
}
最好的方法是什么?replace()方法在字符串中搜索指定的值或正则表达式,并返回替换指定值的新字符串
所以,使用replace时,您不会更改元素。您需要为变量赋值以接受replace方法的更改
export const cleanArrondissements = async (city) => {
const arrondissements = [ 'Arrondissement', 'arrondissement', '1er','2e','3e', '4e', '5e', '6e', '7e', '8e', '9e', '10e','11e','12e','13e','14e', '15e', '16e', '17e', '18e', '19e', '20e']
arrondissements.forEach(element => {
city=city.replace(element, '')
});
return city;
}
如果基本字符串中可能有多个相同的元素,则可以使用正则表达式
city=city.replace(new RegExp(element, 'g'), '')
减少污染使其更清洁:
const cleanArrondissements = (city) => {
const arrondissements = [ 'Arrondissement', 'arrondissement', '1er','2e','3e', '4e', '5e', '6e', '7e', '8e', '9e', '10e','11e','12e','13e','14e', '15e', '16e', '17e', '18e', '19e', '20e']
return arrondissements.reduce((acc, cur) => acc.replace(cur, ""), city);
}
请仔细阅读
replace
如何工作的说明.replace()
返回一个新字符串,您需要将.replace()
返回的字符串分配给city
变量-->city=city.replace(元素“”)
希望该词在字符串中只出现一次。