7
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

JavaScriptで特定の条件を満たす場合にオブジェクト・配列に要素を追加する

Posted at

JavaScriptで、特定の条件を満たす場合にオブジェクトにプロパティを設定し、満たさない場合にはプロパティ自体を設定したくない場合、以前は次のように後からプロパティを追加するしかありませんでした。

const obj = {
  name:  'Sato'
};

if(someCondition) {
  obj.country = 'Japan';
}

ES2015からはスプレッド演算子を使って、次のようにまとめて書くことができます。
ややトリッキーですが、条件がtrueのときにオブジェクトを展開することで、外側のオブジェクトにプロパティを追加しています。

const obj = {
  name:  'Sato',
  ...(someCondition && {country: 'Japan'})
};

配列の場合も同じようにスプレッド演算子を使うことで、特定の条件のときだけ要素を追加できます。

const arr = [
  'America',
  'China',
  ...(someCondition && ['Japan'])
];

if文で後から追加する方法と比べるとごちゃごちゃしていますが、やはりオブジェクトの初期化時にまとめてプロパティを定義できるのは便利です。

参考

7
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?