map 物件儲存鍵值對,並記住鍵的原始插入順序。 任何值(物件或基元型別)都可以是鍵或值。
對映物件是鍵值對的集合。 地圖中的鍵只能顯示一次; 它在地圖的收藏中是獨一無二的。 對映物件鍵值對迭代 - A for....of 迴圈在每次迭代後返回乙個 [key,value] 陣列。 迭代按插入順序進行,即鍵值對按照 set() 方法首次插入集合的順序進行迭代(即,當呼叫 set() 時,對映中沒有具有相同值的鍵)。
靜態屬性
size 屬性:size 屬性返回對映結構的成員總數。 例項方法
set(key, value):set 方法設定鍵值並返回整個對映結構。 如果金鑰已具有值,則會更新該金鑰值,否則會生成新金鑰。 get(key):get 方法讀取鍵對應的鍵值,如果找不到鍵,則返回 undefined。 has(key):has 方法返回乙個布林值,該值指示鍵是否在對映資料結構中。 delete(key):d elete 方法刪除乙個鍵,返回 true。 如果刪除失敗,則返回 false。 clear():clear 方法清除所有沒有返回值的成員。 foreach():遍歷地圖的所有成員。 迭代方法
keys():返回鍵名的遍歷器。 values():返回鍵值的遍歷器。 entries():返回所有成員的遍歷器。 map.prototype[@@iterator]()
:返回乙個新的迭代物件,該物件是 [key, value] 的陣列,其中包含對映物件中的所有鍵值對,按插入對映物件的順序排列。 map 可以像陣列一樣複製:
const original = new map([ 1, 'one'],]const clone = new map(original);console.log(clone.get(1));// oneconsole.log(original === clone); // false.淺層比較不是對同一物件的引用地圖物件可以相互合併,但鍵保持唯一。
const first = new map([ 1, 'one'], 2, 'two'], 3, 'three'],]const second = new map([ 1, 'uno'], 2, 'dos']]) 合併兩個對映物件時,如果存在重複的鍵值,則後面的鍵值將覆蓋前面的鍵值。擴充套件語法實質上是將對映物件轉換為陣列。 const merged = new map([.first, .second]);console.log(merged.get(1));// unoconsole.log(merged.get(2));// dosconsole.log(merged.get(3));// three地圖物件也可以與數字組合:
const first = new map([ 1, 'one'], 2, 'two'], 3, 'three'],]const second = new map([ 1, 'uno'], 2, 'dos']]) 當對映物件與陣列合併時,如果存在重複的鍵值,則後面的鍵值將覆蓋前面的鍵值。const merged = new map([.first, .second, [1, 'eins']])console.log(merged.get(1));// einsconsole.log(merged.get(2));// dosconsole.log(merged.get(3));// three