[解決済み] ES6におけるマップとオブジェクトの比較、いつ使うか?
2023-04-22 02:41:25
質問
<ブロッククオート実行時までキーが不明な場合、また、すべてのキーが同じ型、すべての値が同じ型である場合は、オブジェクトよりもマップを使用します。 すべてのキーが同じ型であり、すべての値が同じ型である場合。
個々の要素に対して操作するロジックがある場合、オブジェクトを使用します。
質問です。
オブジェクトに対してマップを使用する場合、どのような例がありますか?特に、"実行時までキーが不明な場合はどうでしょうか?
var myMap = new Map();
var keyObj = {},
keyFunc = function () { return 'hey'},
keyString = "a string";
// setting the values
myMap.set(keyString, "value associated with 'a string'");
myMap.set(keyObj, "value associated with keyObj");
myMap.set(keyFunc, "value associated with keyFunc");
console.log(myMap.get(keyFunc));
どのように解決するのですか?
<ブロッククオートオブジェクトに対してマップを使用する例として、どのようなものがありますか?
すでに1つ良い例を挙げていると思います。少なくとも
Map
を使う必要があります。
特に、"キーが実行時まで不明となるのはどのような場合でしょうか?"。
コンパイル時に知られていないときはいつでも。要するに、常に
Map
が必要なときは
キーバリュー
コレクション
. コレクションが必要であることを示す良い指標は、コレクションから動的に値を追加したり削除したりするとき、そして特にそれらの値を事前に知らないときです(例:データベースから読み込む、ユーザーによって入力される、など)。
対照的に、オブジェクトを使用すべきなのは、コードを書いている間にオブジェクトがどのプロパティをいくつ持っているかが分かっているとき、つまりその形状が静的であるときです。Felix が言ったように、あなたが レコード . それを必要とする良い指標は、フィールドが異なるタイプを持ち、ブラケット記法を使う必要がないときです(または、ブラケット記法のプロパティ名の限られたセットを期待するとき)。
関連
-
[解決済み] JavaScriptで "use strict "は何をするのか、その根拠は?
-
[解決済み] 2つのJavaScriptオブジェクトのプロパティを動的にマージするにはどうすればよいですか?
-
[解決済み] HTML5のlocalStorageにオブジェクトを格納する方法は?
-
[解決済み] Node.jsを使うタイミングをどう判断するか?
-
[解決済み] JavaScriptのオブジェクトの配列からidでオブジェクトを検索する
-
[解決済み] オブジェクトの配列から、プロパティの値を配列として取り出す。
-
[解決済み] ES6インポートで中括弧を使用するのはどのような場合ですか?
-
[解決済み】オブジェクトの配列を文字列のプロパティ値でソートする
-
[解決済み】オブジェクトからプロパティを削除する(JavaScript)
-
[解決済み] JavaScriptの文字列プリミティブとStringオブジェクトの違いは何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] JavaScriptでオブジェクトのキー/プロパティの数を効率的にカウントする方法
-
[解決済み] JavaScriptにおけるマップとオブジェクトの比較
-
[解決済み] Javascriptによるタッチスクリーンデバイスの検出
-
[解決済み] 文字列が空白であるかどうかをチェックする
-
[解決済み] jQueryの$という記号の意味は何ですか?
-
[解決済み] react-routerのハッシュフラグメントからクエリパラメータを取得する
-
[解決済み] JavaScriptでjson-objectのキーを取得する [重複].
-
[解決済み] javascriptのキャンバスで画像をリサイズする (スムーズ)
-
[解決済み] V8 Javascript エンジンのスタンドアロン実行
-
[解決済み] ES6 MapとWeakMapの違いは何ですか?