簡體   English   中英

在一行中按條件將項目推送到數組

[英]Push item onto array on condition in one line

我想要這樣的東西,我想知道這在 JavaScript 中是否可行,或者我必須寫一個 if 語句

// these versions adds fasle to the array if condition = false let arr = await getArray(params).push(condition && itemToAdd); arr = await getArray(params).push((() => condition && itemToAdd)()); // this version adds undefined to the array if condition = false arr = await getArray(params).push((() => { if (condition) return itemToAdd })());

(我包含 getArray 部分的原因是因為這就是它在我的代碼中的樣子,我實際上並沒有將此數組保存到 var arr中,只是它立即返回到它的調用 function,所以這就是我不想為 if 語句添加一行...)

不知道為什么要在一行中完成,但這可以工作

let arr = [...await getArray(), itemToAdd].slice(0, condition? undefined: -1);

在這里,無論條件如何,我們都將itemToAdd推送到數組中,但如果條件為假,我們將刪除最后一個元素 ( itemToAdd )。

如果您正在使用 reactjs 那么您可以使用 useState 作為條件

const [isCondition, setisCondition] = useState(false);

//但是你需要 if/else 來改變 useState

 if(this_happens) {

設置條件(真)}否則{設置條件(假)}

//你可以這樣做

let arr = await getArray(params).push(isCondition && itemToAdd);

暫無
暫無

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

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