JavaScriptの配列とSetとオブジェクトとMapはどう使い分けるべきか?
JavaScriptの配列とSetとオブジェクトとMapはどう使い分け方についてまとめました。
目次から読む
配列とSetとオブジェクトとMapの使い分け方
まず、似た特徴から、 配列とSetグループとオブジェクトとMapグループに別れます。シンプルなリストの場合:配列とSet
配列とSetのどちらかを使います。配列とSetの違い
重複値は配列はOKですが、Setは不可です。重複値を持ちたくない場合にSetを使います。 for-inを使ったループは、配列が可能ですが、Setはできません。 for-ofを使ったループは、配列もSetも可能です。配列を使うとき
配列は、次のときに使用します。- 順番付きのリストのとき。
- 重複していてもかわまないとき
- データを操作する必要があるとき
Setを使うとき
Setは、次のときに使用します。- 重複のないユニークな値が必要なとき
- 本当にハイパフォーマンスが必要なとき
- 重複を削除したいとき
キーと値のペアの場合:オブジェクトとMap
オブジェクトとMapのどちらかを使います。 キーは値を描写するためのものです。 そのため値を描写して管理する必要がある場合はこちらのグループを選択します。オブジェクトとMapの違い
オブジェクトのキーは、文字列となりますが、Mapは成約がありません。関数でもOKです。 for-inを使ったループは、オブジェクトが可能ですが、Mapはできません。 for-ofを使ったループは、オブジェクトはできませんが、Mapは可能です。オブジェクトを使うとき
オブジェクトは、次のときに使用します。- オブジェクトは伝統的な方法でMapがなかったため使われているケースがある
- 慣れ親しまれているため、理解のしやすさを優先したい場合
- 値へのアクセスのしやすさを優先したい場合(ドット記法とブラケット記法)
- 関数(メソッド)を使うとき
- JSONと使うとき
Mapを使うとき
Mapは、次のときに使用します。- よりよいパフォーマンスを重視する場合
- キーにあらゆるデータ型にしたいとき
- iterableである方がいいとき
- sizeを計算したいとき
- map keyとvalueが必要なとき
- keyが文字列でないものを必要としているとき
JavaScriptの他のBUILT-INについて
- WeakMap
- WeakSet
JavaScriptのNON-BUILT-INについて
- Stacks
- Queues
- Linked Lists
- Trees
- Hash tables
データの流れについて
JavaScriptのデータの出どころには、三種類あります。- プログラムでデータを直接書く
- ユーザーインターフェース
- 外部ソース(Web API)
- データを集める
- データを構造化する



