Javascript:有更好的条件变量声明速记法吗?

Javascript:有更好的条件变量声明速记法吗?,javascript,destructuring,Javascript,Destructuring,我有两个变量foo和bar,我想根据条件声明它们 我已经从以下内容中缩短了代码: let foo = ''; let bar = ''; if (condition) { foo = 'hi'; bar = 'bye'; } else { foo = 'bye'; bar = 'hi'; } 为此: const foo = condition ? 'hi' : 'bye'; const bar = !condition ? 'hi' : 'bye'; 我仍然觉得代码是重复的

我有两个变量
foo
bar
,我想根据
条件声明它们

我已经从以下内容中缩短了代码:

let foo = '';
let bar = '';

if (condition) {
  foo = 'hi';
  bar = 'bye';
} else {
  foo = 'bye';
  bar = 'hi';
}
为此:

const foo = condition ? 'hi' : 'bye';
const bar = !condition ? 'hi' : 'bye';

我仍然觉得代码是重复的,必须使用三元运算符两次。有没有什么方法可以让我把代码缩短得更短?谢谢:)

您可以在一个条件下进行分解

let [foo, bar] = condition ? ['hi', 'bye'] : ['bye', 'hi'];

您可以使用阵列分解作为一个选项:

const条件=true;
常数[foo,bar]=条件?[你好,再见]:[再见,你好];

log({foo,bar})别介意我,只是想用复杂的方式解决这个简单的问题:)

注:Nina Scholz的解决方案非常适合您的问题

let foo = 'hi';
let bar = 'bye';

[foo, bar] = !condition && [foo, bar].reverse() || [foo, bar];