最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

ES6基礎(chǔ)語法之Map和Set對(duì)象

 更新時(shí)間:2022年05月02日 09:46:38   作者:農(nóng)碼一生  
這篇文章介紹了ES6基礎(chǔ)語法之Map和Set對(duì)象,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

一、Map對(duì)象

Map 對(duì)象保存鍵值對(duì)。任何值(對(duì)象或者原始值) 都可以作為一個(gè)鍵或一個(gè)值。

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","羅德曼");
//循環(huán)鍵
for (let key of myMap.keys()) {
  console.log(key);
}		
//循環(huán)值
for (let value of myMap.values()) {
  console.log(value);
}			
//循環(huán)鍵和值
for (let [key, value] of myMap) {
  console.log(key + " = " + value);
}
//或
for (let [key, value] of myMap.entries()) {
  console.log(key + " = " + value);
}
			
//使用forEach循環(huán)
myMap.forEach(function(value,key){
	console.log(key + "=" + value);
},myMap);

Map 與 Array的轉(zhuǎn)換:

//二維數(shù)組轉(zhuǎn)換成map對(duì)象
let arr = [[23,"喬丹"],[33,"皮蓬"],[99,"羅德曼"]];
let myMap = new Map(arr);
for (let [key, value] of myMap) {
  console.log(key + " = " + value);
}
//map對(duì)象轉(zhuǎn)換成二維數(shù)組
let outArr = Array.from(myMap);
console.log(outArr);

Map的克?。?/p>

let myMap1 = new Map([[23,"喬丹"],[33,"皮蓬"],[99,"羅德曼"]]);
let myMap2 = new Map(myMap1);
for (let [key, value] of myMap2) {
   console.log(key + " = " + value);
}

Map的合并(合并兩個(gè) Map 對(duì)象時(shí),如果有重復(fù)的鍵值,則后面的會(huì)覆蓋前面的)

let myMap1 = new Map([[23,"喬丹"],[33,"皮蓬"],[99,"羅德曼"]]);
let myMap2 = new Map([[23,"詹姆斯"],[24,"科比"],[11,"姚明"]]);
let myMap = new Map([...myMap1,...myMap2]); //合并之后詹姆斯會(huì)替換喬丹
for (let [key, value] of myMap) {
	console.log(key + " = " + value);
}

二、Set對(duì)象

Set 對(duì)象允許你存儲(chǔ)任何類型的唯一值,無論是原始值或者是對(duì)象引用。

Set 對(duì)象存儲(chǔ)的值總是唯一的,所以需要判斷兩個(gè)值是否恒等。有幾個(gè)特殊值需要特殊對(duì)待:

(1) +0 與 -0 在存儲(chǔ)判斷唯一性的時(shí)候是恒等的,所以不重復(fù);

(2) undefined 與 undefined 是恒等的,所以不重復(fù);

(3) NaN 與 NaN 是不恒等的,但是在 Set 中只能存一個(gè),不重復(fù)。

let mySet = new Set();
mySet.add(1);
mySet.add("hello");  //這里體現(xiàn)了類型的多樣性
mySet.add(2);
mySet.add(1); //這里添加不了,這里體現(xiàn)了值的唯一性
console.log(mySet); //{1,"hello",2}
console.log(mySet.has(3)); //false, 是否含有3

以下代碼體現(xiàn)了對(duì)象之間引用不同不恒等,即使值相同,Set 也能存儲(chǔ)

let mySet = new Set();
let o = {a: 1, b: 2}; 
mySet.add(o);
mySet.add({a: 1, b: 2});
console.log(mySet);

Set類型轉(zhuǎn)換:

//Array 轉(zhuǎn) Set
let arr = ["喬丹","皮蓬","羅德曼"];
let mySet = new Set(arr);
console.log(mySet);

//Set轉(zhuǎn)Array(使用...)
let mySet = new Set();
mySet.add("喬丹");
mySet.add("皮蓬");
mySet.add("羅德曼");
let arr = [...mySet];
console.log(arr);

//字符串轉(zhuǎn)Set(注:Set中toString方法是不能將Set轉(zhuǎn)換成String)
let mySet = new Set("hello");
console.log(mySet);  //h e l o (兩個(gè)l只出現(xiàn)一次)

Set對(duì)象的作用:

//數(shù)組去重復(fù)
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

//數(shù)組求并集
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

//數(shù)組求交集
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

到此這篇關(guān)于ES6基礎(chǔ)語法之Map和Set對(duì)象的文章就介紹到這了。希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論

大连市| 麦盖提县| 丰城市| 赣州市| 明溪县| 旬阳县| 承德县| 林周县| 印江| 依兰县| 开鲁县| 太仆寺旗| 永泰县| 阿瓦提县| 贺兰县| 邹平县| 樟树市| 潼关县| 息烽县| 玉山县| 九寨沟县| 咸宁市| 渭源县| 青阳县| 宾川县| 鄯善县| 柳州市| 余姚市| 宁化县| 开封市| 紫金县| 武清区| 长白| 鄄城县| 西青区| 鱼台县| 布尔津县| 聂拉木县| 安多县| 垦利县| 山西省|