如何定义具有条件元素的数组?
2022-08-30 00:53:23
如何定义条件数组元素?我想做这样的事情:
const cond = true;
const myArr = ["foo", cond && "bar"];
这按预期工作并产生结果,但是如果我设置为 ,我会得到以下结果:["foo", "bar"]
cond
false
["foo", false]
如何定义具有条件元素的数组?
如何定义条件数组元素?我想做这样的事情:
const cond = true;
const myArr = ["foo", cond && "bar"];
这按预期工作并产生结果,但是如果我设置为 ,我会得到以下结果:["foo", "bar"]
cond
false
["foo", false]
如何定义具有条件元素的数组?
当条件为 时,您可以在数组内展开数组,以保持项目数组的干净。false
以下是操作方法:
// Will result in ['foo', 'bar']
const items = [
'foo',
... true ? ['bar'] : [],
... false ? ['falsy'] : [],
]
console.log(items)
说明:
如您所见,三元运算符始终返回一个数组。
如果条件是 ,则返回 ,否则返回空数组。true
['bar']
[]
之后,我们展开生成的数组(来自三元运算),并将数组的项目推送到父数组。...
如果没有任何数组项(当三元校验是 )时,则不会推送任何内容,这是我们的目标。false
在其他答案中,我解释了同样的想法,但对于对象。您也可以在此处进行检查。
我会这样做
[
true && 'one',
false && 'two',
1 === 1 && 'three',
1 + 1 === 9 && 'four'
].filter(Boolean) // ['one', 'three']
请注意,这还将删除虚假值,例如空字符串。