您好,登錄后才能下訂單哦!
本篇內容主要講解“ES6基礎語法之Map和Set對象怎么用”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“ES6基礎語法之Map和Set對象怎么用”吧!
Map 對象保存鍵值對。任何值(對象或者原始值) 都可以作為一個鍵或一個值。
Map中的鍵值是有序的。
let myMap = new Map(); myMap.set("23","喬丹"); myMap.set("33","皮蓬"); let name = myMap.get("33"); console.log(name); //皮蓬 let has = myMap.has("24"); //查找是否含有此鍵 console.log(has); //false
Map的迭代:
let myMap = new Map(); myMap.set("23","喬丹"); myMap.set("33","皮蓬"); myMap.set("99","羅德曼"); //循環鍵 for (let key of myMap.keys()) { console.log(key); } //循環值 for (let value of myMap.values()) { console.log(value); } //循環鍵和值 for (let [key, value] of myMap) { console.log(key + " = " + value); } //或 for (let [key, value] of myMap.entries()) { console.log(key + " = " + value); } //使用forEach循環 myMap.forEach(function(value,key){ console.log(key + "=" + value); },myMap);
Map 與 Array的轉換:
//二維數組轉換成map對象 let arr = [[23,"喬丹"],[33,"皮蓬"],[99,"羅德曼"]]; let myMap = new Map(arr); for (let [key, value] of myMap) { console.log(key + " = " + value); } //map對象轉換成二維數組 let outArr = Array.from(myMap); console.log(outArr);
Map的克隆:
let myMap1 = new Map([[23,"喬丹"],[33,"皮蓬"],[99,"羅德曼"]]); let myMap2 = new Map(myMap1); for (let [key, value] of myMap2) { console.log(key + " = " + value); }
Map的合并(合并兩個 Map 對象時,如果有重復的鍵值,則后面的會覆蓋前面的)
let myMap1 = new Map([[23,"喬丹"],[33,"皮蓬"],[99,"羅德曼"]]); let myMap2 = new Map([[23,"詹姆斯"],[24,"科比"],[11,"姚明"]]); let myMap = new Map([...myMap1,...myMap2]); //合并之后詹姆斯會替換喬丹 for (let [key, value] of myMap) { console.log(key + " = " + value); }
Set 對象允許你存儲任何類型的唯一值,無論是原始值或者是對象引用。
Set 對象存儲的值總是唯一的,所以需要判斷兩個值是否恒等。有幾個特殊值需要特殊對待:
(1) +0 與 -0 在存儲判斷唯一性的時候是恒等的,所以不重復;
(2) undefined 與 undefined 是恒等的,所以不重復;
(3) NaN 與 NaN 是不恒等的,但是在 Set 中只能存一個,不重復。
let mySet = new Set(); mySet.add(1); mySet.add("hello"); //這里體現了類型的多樣性 mySet.add(2); mySet.add(1); //這里添加不了,這里體現了值的唯一性 console.log(mySet); //{1,"hello",2} console.log(mySet.has(3)); //false, 是否含有3
以下代碼體現了對象之間引用不同不恒等,即使值相同,Set 也能存儲
let mySet = new Set(); let o = {a: 1, b: 2}; mySet.add(o); mySet.add({a: 1, b: 2}); console.log(mySet);
Set類型轉換:
//Array 轉 Set let arr = ["喬丹","皮蓬","羅德曼"]; let mySet = new Set(arr); console.log(mySet); //Set轉Array(使用...) let mySet = new Set(); mySet.add("喬丹"); mySet.add("皮蓬"); mySet.add("羅德曼"); let arr = [...mySet]; console.log(arr); //字符串轉Set(注:Set中toString方法是不能將Set轉換成String) let mySet = new Set("hello"); console.log(mySet); //h e l o (兩個l只出現一次)
Set對象的作用:
//數組去重復 let mySet = new Set([1,2,1,2,3,3,4,5,6,4,7]); let arr = [...mySet]; console.log(arr); //1,2,3,4,5,6,7 //數組求并集 let a = new Set([1, 2, 3]); let b = new Set([4, 3, 2]); let union = new Set([...a, ...b]); let arr = [...union]; console.log(arr); //1, 2, 3, 4 //數組求交集 let a = new Set([1, 2, 3]); let b = new Set([4, 3, 2]); let intersect = new Set([...a].filter(p=>b.has(p))); let arr = [...intersect]; console.log(arr); //2, 3
到此,相信大家對“ES6基礎語法之Map和Set對象怎么用”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。