JavaScript(JS)Map VS Object


🐱‍👤 Map VS Object


MapはES 6の新製品です.KeyとValueを用いてデータを格納し,MapObjectの基本概念は同じである.では、ES 6はなぜMapを追加するのでしょうか.何か違うところがあるのにどうしてMapを使うのですか?

私は本当に切符が好きではありません...とにかくこんな簡単な差がある
また、この点はMapの機能をより良くします.
  • get、set、hasなどの簡単な機能
  • for-ofは、繰り返しの結果順序
  • を提供する.
  • は数百万個の値をサポートし、JavaScriptエンジンの強化に伴い加速しています.
  • 重要なのは、どのデータ構造を使用するかを決定するために2つの方法があることです.

  • 実行前にキーが分からず、すべてのキーが同じタイプで、すべての値が同じタイプである場合、mapを使用します!

  • 各要素に論理を適用する必要がある場合は、objectと書いてください.

  • Object/MAPのコードの比較
  • Object:
       var o = {};
       var o = Object.create(null);
       o.key = 1;
       o.key += 10;
       for(let k in o) o[k]++;
       var sum = 0;
       for(let v of Object.values(m)) sum += v;
       if('key' in o);
       if(o.hasOwnProperty('key'));
       delete(o.key);
       Object.keys(o).length
    Map:
       var m = new Map();
       m.set('key', 1);
       m.set('key', m.get('key') + 10);
       m.foreach((k, v) => m.set(k, m.get(k) + 1));
       for(let k of m.keys()) m.set(k, m.get(k) + 1);
       var sum = 0;
       for(let v of m.values()) sum += v;
       if(m.has('key'));
       m.delete('key');
       m.size();
    ソース
    https://kellis.tistory.com/129
    https://stackoverflow.com/questions/18541940/map-vs-object-in-javascript
    https://developer.mozilla.org/ko/docs/Web/JavaScript/Guide/Keyed_collections