【发布时间】:2018-12-13 12:21:41
【问题描述】:
我有以下问题: 我有一个字符串,我需要替换不同的正则表达式部分。
因此我想遍历它:
在我的例子中,它是一个 URL,我想为特定参数清空:
cleanURL(url, params) {
params.forEach((param) => {
url = this.updateUrlParameter(url, param, '');
});
而我有:
updateUrlParameter(url, param, value) {
const regex = new RegExp(`(${param}=)[^&]+`);
const newURL = url.replace(regex, `$1${value}`);
return newURL;
}
这是我让它工作的唯一方法,但现在我正在重新分配一个函数参数。 这不是我想要的。
我的问题是,那个
cleanURL(url, params) {
params.forEach((param) => {
this.updateUrlParameter(url, param, '');
});
}
每次迭代都会将 SAME url 传递到循环中。我最终只得到了最后一个替换。
不知何故,我不得不将更改后的字符串传递到下一个循环迭代中。
我怎样才能做到这一点? 也许朝这个方向发展? 以某种方式嵌套并再次调用该函数?
while(outerI--){
(function(i){
i+=1;//doesn't affect outerI and you wanted 1-length so we add one.
//crap inside your forEach loop but without the i++
})(outerI)
}
我在这里找到的: .forEach loop: use variable
很高兴在这里得到提示。 谢谢
干杯
【问题讨论】:
-
您不想重新分配函数参数吗?这种情况下这样做是完全有效的。
标签: javascript regex for-loop replace