JavaScript(ES6):在条件表达式中使用扩展运算符(?-operator)

时间:2019-01-21 16:32:24

标签: javascript ecmascript-6

在JavaScript中,可以使用...(扩展)运算符将数组与另一个数组合并,如下所示

[...[1,2,3], ...[4,5,6]]
// -> [1, 2, 3, 4, 5, 6]

但是,似乎没有资格在三元?表达式内使用散布运算符

[true ? ...[1,2,3] : ...[4,5,6]]
// Uncaught SyntaxError: Unexpected token ...

这是对语言的合理限制吗?是一种缺陷还是我缺少什么?无需命令性方法或Object.assign()函数就可以在语法上实现这一点吗?

1 个答案:

答案 0 :(得分:5)

将点移到表达式外,然后对结果进行扩频。

console.log([...(true ? [1, 2, 3] : [4, 5, 6])]);

这仅适用于可传播的值。如果没有,请将不可展开的部分包装成阵列。

console.log([...(true ? [1] : [4, 5, 6])]);