可以将多个变量初始化为相同的值a=b=5
。此外,可以使用a+=2
添加到变量。但有没有办法同时为两者添加相同的值?类似a+=b+=2
的内容,a
不会增加2
和b
的值。因此,在这种情况下,a
和b
最终都会为7。
此外,我不是在寻找能够重复a+=2,b+=2
等附加价值的答案。
我意识到这不是最好的编码实践,我只是想知道是否有可能。与Swapping two variable value without using 3rd variable
在性质上有些相似答案 0 :(得分:5)
你可以做到这一点!以下是:
var a = 10;
var b = 15;
b += -a + (a += 10); // In this case, adding 10 to both
console.log(a, b); //=> 20 25
BOOM (是的,它也引起了我的注意)
有时为什么你做这件事并不重要,只要你可以这样做就好了!
那么,它是如何/为什么有效?
-a
被解析并成为a
的负值,即10(所以-10)。然后,a += 10
运行并将a
设置为20(10 + 10)。最后,它汇总了两个值(-10 + 20
),并为您提供了旧a
和新a
之间的差异。
华丽。
答案 1 :(得分:2)
所以在这种情况下,a和b最终都是7。
您可以添加两个已定义的变量,并将指定的递增值乘以变量数,然后除以变量数
a = b = 5;
console.log(a, b);
n = 2;
a = b = ((a + b + n * 2) / 2);
console.log(a, b);

类似var a = 5,b = 7;然后你想要添加结果 富2:3。因此,如果为false,则结果为8和10。
您可以使用解构分配Array.prototype.map()
var a = 5, b = 7;
console.log(a, b);
var foo = false;
[a, b] = [a, b].map(v => v += foo ? 2 : 3);
console.log(a, b);