JSは2つの数の和のアルゴリズムを解きます。


本論文の実例は、JSが2つの数の和を解くアルゴリズムを述べている。皆さんに参考にしてあげます。具体的には以下の通りです。
テーマの説明
一つの整数配列と一つの目標値を指定して、配列と目標値の2つの数を探し出します。
各入力は一つの答えにしか対応していないと仮定してもいいです。同じ要素は繰り返し利用できません。
::tip
nums=[2,7,11,15]を与えられ、target=9
nums[0]+nums[1]=2+7=9
だから[0,1]を返します
:
法を解くMapを用いて配列要素値と対応する下付き文字を記録し、1つの数はnums[i]で、target - nums[i]Mapであるかどうかを判断する。

var twoSum = function(nums, target) {
 const _length = nums.length;
 const _mayMap = new Map();
 for (let i = 0; i < _length; i++) {
 if (_mayMap.has(target - nums[i])) {
  return [_mayMap.get(target - nums[i]), i];
 }
 _mayMap.set(nums[i], i);
 }
};

Mapの回顧
Mapオブジェクトはキーのペアを保存します。どの値(オブジェクトまたは元の値)もキーまたは値として使用できます。

new Map([iterable])

Iterableは、キーパッドペア(2つの要素の配列、例えばiterable)の要素の配列または他の[[ 1, 'one' ],[ 2, 'two' ]]オブジェクトとすることができる。各キーペアは新しいMapに追加されます。nullundefinedとして扱われます。
Objectとmapsの比較ObjectsMapsは、同じように、あなたがボタンを押して1つの値にアクセスしたり、削除キーを削除したり、1つのキーが結合されているかどうかを検出したりすることができます。
そのために、以前は私たちは対象をMapsとして使っていました。
しかし、MapsObjectsはいくつかの重要な違いがあります。下記の状況でMapを使うのがより良い選択です。
1つのObjectのキーは文字列またはSymbolsしかないが、1つのMapのキーは、関数、オブジェクト、基本タイプを含む任意の値であってもよい。Mapのキーの値は順序良く、オブジェクトに追加されたキーはそうではない。したがって、これを通過すると、オブジェクトは挿入順にキーの値に戻ります。
size属性によって直接に一つのMapのキーの数を取得できますが、Mapのキーの数は手動で計算できます。Objectは直接反復可能であり、一方、Mapの反復は、まずキー配列を取得してから反復する必要がある。Objectはすべて自分の原型があって、原型の鎖の上のキーパッドの名前はあなたの自分の対象の上の設定のキーパッドの名前と衝突するかもしれません。
ES 5は最初にObjectで原型のないオブジェクトを作成できますが、このような使い方はあまり見られません。
Mapは頻繁にキーパッドの値を削除するシーンにおいて、性能の優位性があります。
属性
Map.length
属性lengthの値は0です。
get Map[@species]
このコンストラクタは、派生オブジェクトを作成するために使用されます。
Map.prototype
Mapコンストラクタの原型を表します。属性の追加を許可して、すべてのMapオブジェクトに適用します。
すべてのMapオブジェクトのインスタンスは、Map.prototypeを引き継ぎます。
Map.prototype.com nstructor
関数を返します。インスタンスのプロトタイプを作成しました。デフォルトはMap関数です。
Map.prototype.size
Mapオブジェクトのキー/値ペアの数を返します。
Map.prototype.clear()
Mapオブジェクトのすべてのキー/値ペアを削除します。
Map.prototype.delete(key)
この要素がMapオブジェクトに存在する場合は、削除してtrueに戻ります。要素が存在しない場合はfalseに戻ります。
Map.prototype.entries()
新しいIteratorオブジェクトを返します。挿入順にMapオブジェクトの各要素の「key,value」配列が含まれます。
Map.prototype.forEach(calbackFn[,thisArg])
挿入順に、Mapオブジェクト内の各キーの値のペアでコールバックFn関数を呼び出します。forEachのためにthisArgが提供された場合、それは毎回のコールバックの中でthis値とします。
Map.prototype.get(key)
リターンキーに対応する値が存在しない場合は、undefinedを返します。
Map.prototype.has(key)
Mapのインスタンスにキーが含まれているかどうかを示すブール値を返します。
Map.prototype.keys()
新しいIteratorオブジェクトを返します。挿入順にMapオブジェクトの各要素のキーが含まれます。
Map.prototype.set(key,value)
Mapオブジェクト中のキーの値を設定します。このMapオブジェクトを返します。
Map.prototype.values()
新しいIteratorオブジェクトを返します。挿入順に各要素の値が含まれます。
Map.prototype[@@iterator]()
新しいIteratorオブジェクトを返します。挿入順にMapオブジェクトの各要素の「key,value」配列が含まれます。

var myMap = new Map();

var keyObj = {},
 keyFunc = function () {},
 keyString = "a string";

//    
myMap.set(keyString, "  'a string'    ");
myMap.set(keyObj, "  keyObj    ");
myMap.set(keyFunc, "  keyFunc    ");

myMap.size; // 3

//    
myMap.get(keyString); // "  'a string'    "
myMap.get(keyObj);  // "  keyObj    "
myMap.get(keyFunc);  // "  keyFunc    "

myMap.get("a string"); // "  'a string'    "
       //   keyString === 'a string'
myMap.get({});   // undefined,   keyObj !== {}
myMap.get(function() {}) // undefined,   keyFunc !== function () {}

データを転送

let valuesMap = new Map();

class payserviceclass {
 constructor() {}
 getItem(key) {
 const stringKey = String(key);
 if (valuesMap.has(key)) {
  return valuesMap.get(stringKey);
 }
 return null;
 }
 setItem(key, val) {
 return valuesMap.set(String(key), val);
 }

 clear() {
 return valuesMap.clear();
 }
}
const payservice = new payserviceclass();

export default payservice;

参考:
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Object/Map
興味のある友達はオンラインHTML/CSS/JavaScriptコードを使ってツールを実行できます。http://tools.jb51.net/code/HtmlJsRun上記コードの運行効果をテストします。
もっと多くのJavaScriptに関する内容に興味がある読者は、当駅のテーマを見ることができます。「JavaScript数学演算の使い方のまとめ」、「JavaScriptデータ構造とアルゴリズム技術のまとめ」、「JavaScript配列操作技術のまとめ」、「JavaScriptソートアルゴリズムのまとめ」、「JavaScriptはアルゴリズムと技術の総括を遍歴します。」、「JavaScript検索アルゴリズムのテクニックのまとめ」および「JavaScriptエラーとデバッグテクニックのまとめ
本論文で述べたように、JavaScriptプログラムの設計に役に立ちます。