条件付き配列要素を定義するにはどうすればよいでしょうか? 次のようにしたいのです:
const cond = true;
const myArr = ["foo", cond && "bar"];
これは予想どおりに動作し、 という結果になりますが、に["foo", "bar"]
設定すると、次の結果が得られます。cond
false
["foo", false]
条件要素を含む配列を定義するにはどうすればよいですか?
ベストアンサー1
条件が の場合、配列項目をクリーンな状態に保つために、配列内に配列を広げることができますfalse
。
やり方は次のとおりです:
// Will result in ['foo', 'bar']
const items = [
'foo',
... true ? ['bar'] : [],
... false ? ['falsy'] : [],
]
console.log(items)
説明:
ご覧のとおり、三項演算子は常に配列を返します。
条件が の場合は を返し、それ以外の場合は空の配列true
を返します。['bar']
[]
その後、...
結果の配列(三項演算から)を展開し、配列の項目を親配列にプッシュします。
配列項目がない場合(三項チェックが の場合false
)、何もプッシュされません。これが私たちの目標です。
他の回答で、同じアイデアをオブジェクトについて説明しました。これも確認できますここ。