ES6具有零合并的阵列排列运算符



当我尝试以下操作时,会出现Expression expected错误:

const func = () => [0, 1]
const possibly_undefined_var = { var: 3 }
const var = [possibly_undefined_var?.var ?? ...func()]

预期结果:[3]或[0,1]

我想知道在这个例子中是否有任何方法可以使用数组排列运算符和零合并。

我认为最清晰的方法是使用条件运算符:

const obj = possibly_undefined_var?.var;
const arr = obj ? [obj] : [...func()];

我想不出任何好的方法来在单个数组文字中用func的扩展替换obj,这不会造成不必要的混乱和冗长(我认为无论如何都需要条件运算符(。

如果obj可以是false而不为null或未定义,那么它需要更多的代码:

const obj = possibly_undefined_var?.var;
const arr = (obj === null || obj === undefined) ? [...func()] : [obj];

最新更新