是否有可能在ES6上处理2变量if/else条件是否为真?

fli*_*lix 3 javascript if-statement ecmascript-6

假设我有这样的代码

var a, b;
b = 1;
var c = b > 0 ? a = 1 /*and c = 2*/ : a = 0 /*and c = 1*/;
console.log(a + c);
Run Code Online (Sandbox Code Playgroud)

有没有办法制作c = 2a = 1使用上面的代码?

Ori*_*ori 7

您可以使用括号将表达式包装在三元组内,并使用逗号运算符返回要分配给的数字c.

var a, b = 1
var c = b > 0 ? (a=1, 2) : (a=0, 1)

console.log(a, c)
Run Code Online (Sandbox Code Playgroud)

使用ES6,您可以使用解构分配将数字分配给ac:

const b = 1
const [a, c] = b > 0 ? [1, 2] : [0, 1]

console.log(a, c)
Run Code Online (Sandbox Code Playgroud)