首页 > 解决方案 > 在循环中使用数组替换字符串中的字符

问题描述

我有一个字符串,我想替换一些字符,这些字符在一个数组中。这是我的代码:

let arrayParam = [];
arrayParam.push('X');
arrayParam.push('Y');
arrayParam.push('Z');

let stringToFilter = 'Y0000000';

let stringFiltered;

for (let i = 0; i < arrayParam.length; i++) {
  stringFiltered = stringToFilter.replace(arrayParam[i], '');
  console.log(`array:${arrayParam[i]}     stringFiltered:${stringFiltered}`);
};

这导致控制台:

element:A     stringFiltered : Y0000000
element:B     stringFiltered : 0000000
element:C     stringFiltered : Y0000000

我不明白,我的 var 在循环之外声明,为什么它不记得更改?

标签: javascriptarraysstring

解决方案


您还需要更新 stringToFilter。

for(let i=0 ; i < arrayParam.length; i++ ) {
  stringFiltered = stringToFilter.replace(arrayParam[i], '');
  console.log(`array:${arrayParam[i]}  stringFiltered:${stringFiltered}`);
  stringToFilter = stringFiltered;
}

推荐阅读