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];