繁体   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