91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

ES6基礎語法之Map和Set對象怎么用

發布時間:2022-05-05 10:18:03 來源:億速云 閱讀:160 作者:iii 欄目:開發技術

本篇內容主要講解“ES6基礎語法之Map和Set對象怎么用”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“ES6基礎語法之Map和Set對象怎么用”吧!

一、Map對象

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 對象允許你存儲任何類型的唯一值,無論是原始值或者是對象引用。

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對象怎么用”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

正镶白旗| 乐清市| 七台河市| 尼玛县| 江都市| 吴桥县| 漠河县| 郓城县| 广宗县| 许昌市| 宿州市| 平谷区| 浙江省| 丰台区| 湘阴县| 噶尔县| 镇远县| 和龙市| 平南县| 平度市| 丰顺县| 南江县| 靖边县| 鹰潭市| 文登市| 永嘉县| 金秀| 赤水市| 英德市| 光山县| 保靖县| 闽清县| 大港区| 南漳县| 朝阳县| 长宁县| 颍上县| 安塞县| 辽阳县| 竹溪县| 江北区|