三元运算符return 无

Ternary operator return nothing

有没有办法return三元运算符什么都没有我的意思是

const a = [ 0 ? { name : "example" } : null ]

当我打印 a = [null]

或:

const a = [ 0 && {name:"example"}]

a 将是 [false]

我预计案例 1 的 a = []

没有。这是不可能的。你会得到一个值。

如果您有条件地想要一个值,则要么在数组外做出决定,要么在之后过滤掉空值。

例如

const a = 0 ? [ { name: "example" } ] : [];

const a = [ 0 ? { name : "example" } : null ].filter(Boolean);

您可以展开一个(空)数组。

console.log([...(0 ? [{ name : "example" }] : [])]);
console.log([...(1 ? [{ name : "example" }] : [])]);

null 是 Javascript 中完全有效的数组值,undefined.

也是如此

你可以简单的按需构造数组...

const a = 0 ? [{ name : "example" }] : [];

或者如果这是更大数组构造的一部分,请使用 splats...

const a = [
    'a',
    ...(0 ? [{name : "example"}] : []),
    'b'
];

console.log(a); //-> ['a', 'b']