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团队的努力。