Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/440.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 替换字符串数组中字符串中的单词_Javascript_Replace - Fatal编程技术网

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(元素“”)
希望该词在字符串中只出现一次。