目次
例証します:
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)値の
指定されたオブジェクトのプリミティブ値を返します。