天天看點

ES6中set和map

一。 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 的差別

  1. 都是用來存儲資料用的,但是存儲的資料格式不同

    set 直接存儲 任意類型資料

    map 存儲資料的時候,必須以key,value的形式,

    set 使用forEach 周遊的時候,key和value值是一樣的

    而map 周遊的時候,key就是存進去的對象的key,value就是存在的值