在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()
函数就可以在语法上实现这一点吗?
答案 0 :(得分:5)
将点移到表达式外,然后对结果进行扩频。
console.log([...(true ? [1, 2, 3] : [4, 5, 6])]);
这仅适用于可传播的值。如果没有,请将不可展开的部分包装成阵列。
console.log([...(true ? [1] : [4, 5, 6])]);