Javascript 在函数中将字符串与变量串联时,左侧参数错误无效
我试图将函数中的值与Javascript 在函数中将字符串与变量串联时,左侧参数错误无效,javascript,Javascript,我试图将函数中的值与c连接起来,每次加5。但是,我不断得到错误未捕获引用错误:赋值中的左侧无效。有人知道解决方法吗?我假设我不能使用+操作符作为串联,然后在+=中使用它?我不明白为什么这不起作用 var c1 = 0; var c2 = 0; function(d) { d.number; //possible value of 1 or 2 c + d.number += 5; //isn't this c1 += 5, or c2 += 5? "c" + d.num
c
连接起来,每次加5。但是,我不断得到错误未捕获引用错误:赋值中的左侧无效
。有人知道解决方法吗?我假设我不能使用+
操作符作为串联,然后在+=
中使用它?我不明白为什么这不起作用
var c1 = 0;
var c2 = 0;
function(d) {
d.number; //possible value of 1 or 2
c + d.number += 5; //isn't this c1 += 5, or c2 += 5?
"c" + d.number += 5; //also tried this - same error
console.log(c1);
console.log(c2);
;}
如果Pointy在注释中所说的内容不清楚,则可以使用
[]
运算符在变量名为对象属性时“构造”变量名(正如您正在尝试的那样)
以下是一个例子:
var cObj = {};
cObj.c1 = 0;
cObj.c2 = 0;
function(d) {
cObj['c' + d.number] += 5;
console.log(cObj.c1);
console.log(cObj.c2);
;}
任何赋值运算符的左侧必须是简单变量或属性引用。您尝试在JavaScript中执行的操作是可能的,但它不是惯用的。您可以创建
c1
和c2
对象属性而不是变量,并使用[]
运算符来构造属性名称。或者,如果您真的想将c
作为数组使用,请将其设置为数组,而不是两个单独的变量。谢谢,@Pointy。我重写了它,它按预期工作。是的!这很有效。谢谢您的快速回复。没问题,请尽可能接受答案。感谢Pointy团队的努力。