一。 set 資料容器 能夠存儲無重複值資料的有序清單
1. 通過 new set() 方法建立容器 通過add() 方法添加
2. set.size擷取存儲的資料的數量
例:
var set = new Set()
set.add(1);
set.add('1');
console.log(set)
console.log(set.size)
3. Set内部使用Object.is()方法來判斷兩個資料項是否相等
4. 利用數組來構造set 且set 構造器不會存在重複的資料
例:
var set1 = new Set([1,2,3,3,3,3,3,2]) // 結果數組會去重
5. 可以使用has()方法來判斷某個值是否存在于Set中
例:console.log(set1.has(5)) // 傳回 true 或false
6. 使用delete()方法從Set中删除某個值,或者使用clear()方法從Set中删除所 有值
例:
set1.delete(1)
console.log(set1)
set1.clear()
console.log(set1)
7. forEach 周遊set
set2.forEach(function(value,key){
console.log(value)
console.log(key)
})
8. 将數組轉換成set 直接将數組放在new Set()參數中
二。ES6中提供了Map資料結構,能夠存放鍵值對,其中,鍵的去重是通過Object.is()方法進行比較,鍵的資料類型可以是基本類型資料也可以是對象,而值也可以是任意類型資料。
1. 建立map
例:
var map = new Map()
2.使用set()方法可以給Map添加鍵值對 ,能夠自動去重,和set原理一樣,添加相同的元素會進行去重處理
var map = new Map()
console.log(map)
map.set('title','baidu')
map.set('year','2018');
map.set('year','2018');
map.set('year','2018');
3.通過get()方法可以從Map中提取值,size方法同set一樣,擷取數組長度
console.log(map.get('year')) // 2018
console.log(map.size) // 2
4.同set一樣,也有 has(),delete(),clear() 方法
map.delete('title');
map.clear();
console.log(map.has('year'));
5. forEach 周遊
map.forEach(function(value,key){
console.log(value) // 值 2018
console.log(key) // 健 year
})
三。 set和map 的差別
-
都是用來存儲資料用的,但是存儲的資料格式不同
set 直接存儲 任意類型資料
map 存儲資料的時候,必須以key,value的形式,
set 使用forEach 周遊的時候,key和value值是一樣的
而map 周遊的時候,key就是存進去的對象的key,value就是存在的值