簡體   English   中英

三元運算符不返回任何內容

[英]Ternary operator return nothing

有沒有辦法為三元運算符返回任何內容我的意思是

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

當我打印 a = [null]

或者:

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

a 將是 [false]

我預計案例 1 的 a = []

不,這是不可能的。 你會得到一個價值回來。

如果您有條件地想要一個值,那么要么在數組之外做出決定,要么在之后過濾掉 null 值。

例如

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']

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM