如何定义条件数组元素?我想做这样的事情:
const cond = true; const myArr = ["foo", cond && "bar"];
这按预期工作并导致["foo", "bar"]但如果我设置cond为false,我会得到以下结果:["foo", false]
["foo", "bar"]
cond
false
["foo", false]
如何定义带有条件元素的数组?
当条件为false.
这是你可以做到的 :
// Will result in ['foo', 'bar'] const items = [ 'foo', ... true ? ['bar'] : [], ... false ? ['falsy'] : [], ] console.log(items)
说明 :
如您所见,三元运算符总是返回一个数组。
如果条件为true,则返回['bar'],否则为空数组[]。
true
['bar']
[]
之后,我们展开...结果数组(来自三元运算)并将数组的项推送到父数组。
...
如果没有任何数组项(当三元检查为 时false),则不会推送任何内容,这是我们的目标。
在其他答案中,我解释了相同的想法,但针对对象。你也可以在这里查看。