首页 > 解决方案 > 如何同时使用“扩展语法”(...)和“条件运算符”(?:)?

问题描述

let a = [1, 2];
let b = [3, 4];
let c = 5;
let d = [...a, ...b]; // OK
let e = [...a, (c === 5 ? (...b) : 3)]; // error info: Expression expected

我认为e应该是 [1, 2, 3, 4],但是我收到错误消息,谁能解释为什么?

(我在 IDE 和 Chrome 控制台中尝试过,带或不带括号,相同的错误消息。)

标签: javascriptarrays

解决方案


您需要...提升一个级别:

let e = [ ...a, ...(c === 5 ? b : [ 3 ])];

推荐阅读