条件付き要素を含む配列を定義するにはどうすればいいですか? 質問する

条件付き要素を含む配列を定義するにはどうすればいいですか? 質問する

条件付き配列要素を定義するにはどうすればよいでしょうか? 次のようにしたいのです:

const cond = true;
const myArr = ["foo", cond && "bar"];

これは予想どおりに動作し、 という結果になりますが、に["foo", "bar"]設定すると、次の結果が得られます。condfalse["foo", false]

条件要素を含む配列を定義するにはどうすればよいですか?

ベストアンサー1

条件が の場合、配列項目をクリーンな状態に保つために、配列内に配列を広げることができますfalse

やり方は次のとおりです:

// Will result in ['foo', 'bar']
const items = [
  'foo',
  ... true ? ['bar'] : [],
  ... false ? ['falsy'] : [],
]

console.log(items)

説明:

ご覧のとおり、三項演算子は常に配列を返します。

条件が の場合は を返し、それ以外の場合は空の配列trueを返します。['bar'][]

その後、...結果の配列(三項演算から)を展開し、配列の項目を親配列にプッシュします。

配列項目がない場合(三項チェックが の場合false)、何もプッシュされません。これが私たちの目標です。


他の回答で、同じアイデアをオブジェクトについて説明しました。これも確認できますここ

おすすめ記事