new Map() の詳細な紹介と使用法

目次

例証します:

定義: キーと値のペアのコレクション

プロパティとメソッド:

(1) サイズ属性

(2)set(キー,値)

(3)get(キー)

(4)(鍵)があります

(5)削除(キー)

(6)クリア()

(7) トラバース方法:

(8)toString

(9)値の

要約:


例証します:


JavaScript オブジェクト (オブジェクト) は本質的にキーと値のペア (ハッシュ構造) のコレクションですが、従来は文字列のみがキーとして使用できました。これは、その使用に大きな制限をもたらします。
この問題を解決するために、ES6 は Map データ構造を提供します。オブジェクトと似ており、キーと値のペアの集合でもありますが、「キー」の範囲は文字列に限定されず、さまざまな種類の値(オブジェクトを含む)をキーとして使用できます。

定義: キーと値のペアのコレクション


1. let mapObj = new Map();
2. let mapObj = new Map([[key,value],[key,value]]); //初期化パラメータを使用したデフォルトの定義

Map のキーが単純型 (数値、文字列、ブール値) の値である場合、Map は 0 と -0 を含め、厳密に等しい限り 2 つの値をキーとして扱います。また、NaN はそれ自体と厳密には等しくありませんが、Map はそれを同じキーとして扱います。

プロパティとメソッド:


(1) サイズ属性


size 属性は、Map 構造体のメンバーの合計数を返します。
 

let obj = new Map([['name', '张三'], ['age', 18], ['sex', '男']])
obj.size  //3

(2)set(キー,値)

set メソッドは、キーに対応するキー値を設定し、Map 構造全体を返します。キーにすでに値がある場合はキーの値が更新され、そうでない場合はキーが新しく生成されます。

// 常用写法
let obj = new Map()
obj.set("age", 20)        // 键是字符串
obj.set(0, "attack_type")     // 键是数值
obj.set(undefined, "definition")     // 键是undefined

//set方法返回的是Map本身,也可以采用链式写法。
let map = new Map()
.set(1, 'a')
.set(2, 'b')

(3)get(キー)

get メソッドは、キーに対応するキー値を読み取り、キーが見つからない場合は unknown を返します。

let obj = new Map()
obj.set("hello", 'Hello ES6!')
obj.get('hello')  // Hello ES6!
obj.get('word')  // undefined

(4)(鍵)があります

has メソッドは、キーが Map データ構造内にあるかどうかを示すブール値を返します。

let obj = new Map()
obj.set("hello", 'Hello ES6!')
obj.has('hello')  // true
obj.has('word')  // false

(5)削除(キー)

delete メソッドはキーを削除し、true を返します。削除に失敗した場合は false を返します。

let obj = new Map()
obj.set("hello", 'Hello ES6!')
obj.has('hello')  // true
obj.delete('hello')
obj.has('hello')  // false

(6)クリア()

clear メソッドはすべてのメンバーをクリアし、戻り値はありません。

let obj = new Map()
obj.set("hello", 'Hello ES6!')
obj.size // 1
obj.clear()
obj.size // 0

(7) トラバース方法:

key()、values()、entrys()、forEach() は、
マップ内の各要素に対して指定された操作を実行します。

(8)toString

マップの文字列表現を返します。

(9)値の

指定されたオブジェクトのプリミティブ値を返します。

要約:

開発プロセスでは、データ構造に関しては、特に複雑なデータ構造の場合、配列の代わりにマップを使用できますが、配列ストレージの一意性を考慮する場合は、最初に Set と Map を使用してください。

おすすめ

転載: blog.csdn.net/m0_56910319/article/details/128708808