基于条件设置多个常量值



我想基于一个条件设置多个值。这个代码可以工作:

let a;
let b;
if (fooBar) {
a = "foo";
b = "bar";
} else {
a = "baz";
b = "Hello world!";
}

但我正在努力遵守FP(不可变变量(和DRY原则。

对于一个变量,我会这样做:

const a = fooBar
? "foo"
: "baz";

我能以这种方式设置多个变量吗?

我认为总体上使用let没有错,但您的问题的答案是:

const [a, b] = fooBar ? ["foo", "bar"] : ["baz", "Hello world!"]

在这种情况下,可以使用数组析构函数。因此,我们创建变量以按索引访问数组项(a是#0,b是#1(

使用三进制生成具有所需值的对象或数组,然后使用析构函数进行赋值:

const fooBar = false
const { a, b } = fooBar ? 
{ a: 'foo', b: 'bar' } 
: 
{ a: 'baz', b: 'Hello world!' }

console.log(a, b)

我不明白为什么每个人都如此执着于析构函数。这对你有用吗?

const a  = 1 ? 0 : -1,
b = 0 ? 3 : -1;

相关内容

  • 没有找到相关文章

最新更新