1. ホーム
  2. javascript

[解決済み] 条件付き要素を持つ配列を定義するには?

2022-04-14 21:05:59

質問

条件付き配列の要素を定義するにはどうすればよいですか? 以下のようなことをしたいのですが。

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

これは期待通りに動作し、結果として ["foo", "bar"] が、もし condfalse , 次のような結果が得られます。 ["foo", false]

条件付きの要素を持つ配列を定義するにはどうすればよいですか?

どのように解決するのですか?

配列の中に配列を分散させることで、配列をすっきりさせることができます。 false .

その方法は以下の通りです。 :

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

console.log(items)

説明 :

見ての通り、三項演算子は常に配列を返します。

もし、条件が true を返します。 ['bar'] そうでなければ、空の配列 [] .

その後に広げるのは ... という配列が生成され、その項目が親配列にプッシュされます。

配列の項目がない場合(三項検査が false ということで、何もプッシュされません。


他の回答で、同じアイデアを説明しましたが、オブジェクトの場合です。あなたもそれをチェックすることができます こちら .