我正在尝试在Codewars上解决以下问题:Strip Comments。 我认为这是非常合法的代码,但是出现以下错误:
ReferenceError:分配中的左侧无效
此部分:reg += "\\" += item += "|";
(第6行)
这是我的代码:
function solution(input, markers) {
var arr = input.split("\n");
var reg = "(";
markers.forEach(function(item, index){
if (!(index == markers.length)){
reg += "\\" += item += "|";
} else {reg += "\\" += item += ")";}
})
reg += ".*";
var regex = new RegExp(reg);
arr.forEach(function(item){
item.replace(regex, "");
})
var ret = arr.toString();
ret.replace(/\,/g, "\n");
return ret;
};
答案 0 :(得分:1)
+=
不能在字符串之间使用。使用+
function solution(input, markers) {
var arr = input.split("\n");
var reg = "(";
markers.forEach(function(item, index){
if (!(index == markers.length)){
reg += "\\" + item + "|";
} else {reg += "\\" + item + ")";}
})
reg += ".*";
var regex = new RegExp(reg);
arr.forEach(function(item){
item.replace(regex, "");
})
var ret = arr.toString();
ret.replace(/\,/g, "\n");
return ret;
};
答案 1 :(得分:0)
a += b
做两件事:
a
)与右(b
)组合在一起。 (对于字符串,“ combines”表示“连接” [joins]。对于数字而言,其表示“ adds”。)a
)。这意味着它左侧的内容必须是可以更改其值的内容。您不能更改字符串文字的值,它是不可分配的。所以问题是她:
reg += "\\" += item += "|";
// ---------^^------^^
第一个+=
很好,第二个有问题。第二个尝试分配回它不能的表达式reg += "\\"
。
您只是想在那里+
:
reg += "\\" + item + "|";
// ---------^------^
我建议您阅读一本基本的JavaScript书籍和/或来自知名来源的教程。如果您不确定操作员的工作方式,建议您on MDN进行查找。