如何在一个参数中为两个变量添加相同的值?

时间:2017-02-25 05:53:41

标签: javascript

可以将多个变量初始化为相同的值a=b=5。此外,可以使用a+=2添加到变量。但有没有办法同时为两者添加相同的值?类似a+=b+=2的内容,a不会增加2b的值。因此,在这种情况下,ab最终都会为7。

此外,我不是在寻找能够重复a+=2,b+=2等附加价值的答案。

我意识到这不是最好的编码实践,我只是想知道是否有可能。与Swapping two variable value without using 3rd variable

在性质上有些相似

2 个答案:

答案 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);