ReferenceError: Invalid left-hand side in assignment while using "+="
ReferenceError: Invalid left-hand side in assignment while using "+="
我正在尝试解决 Codewars 上的以下问题:Strip Comments。
我认为这是非常合法的代码,但我收到以下错误:
ReferenceError: Invalid left-hand side in assignment
对于这部分: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;
};
+=
不能在字符串之间使用。使用 +
连接项目
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;
};
a += b
做了两件事:
- 它将左操作数 (
a
) 与其右操作数 (b
) 组合在一起。 (对于字符串,"combines" 表示 "concatenates" [连接在一起。对于数字,它表示 "adds"。)
- 它将 (1) 的结果放入其左操作数 (
a
)。
这意味着它左边的内容必须是您可以更改其值的内容。您不能更改字符串文字的值,它不可分配。所以问题是她:
reg += "\" += item += "|";
// ---------^^------^^
第一个+=
没问题,后两个有问题。第二个尝试重新分配给表达式 reg += "\"
,但它不能。
你只是想要 +
那里:
reg += "\" + item + "|";
// ---------^------^
我建议阅读来自信誉良好的来源的基础 JavaScript 书籍 and/or 教程。如果您不确定操作员做什么,我建议您查找 on MDN.
我正在尝试解决 Codewars 上的以下问题:Strip Comments。 我认为这是非常合法的代码,但我收到以下错误:
ReferenceError: Invalid left-hand side in assignment
对于这部分: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;
};
+=
不能在字符串之间使用。使用 +
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;
};
a += b
做了两件事:
- 它将左操作数 (
a
) 与其右操作数 (b
) 组合在一起。 (对于字符串,"combines" 表示 "concatenates" [连接在一起。对于数字,它表示 "adds"。) - 它将 (1) 的结果放入其左操作数 (
a
)。
这意味着它左边的内容必须是您可以更改其值的内容。您不能更改字符串文字的值,它不可分配。所以问题是她:
reg += "\" += item += "|";
// ---------^^------^^
第一个+=
没问题,后两个有问题。第二个尝试重新分配给表达式 reg += "\"
,但它不能。
你只是想要 +
那里:
reg += "\" + item + "|";
// ---------^------^
我建议阅读来自信誉良好的来源的基础 JavaScript 书籍 and/or 教程。如果您不确定操作员做什么,我建议您查找 on MDN.