set
就是一種集合 : 是由一組無序且唯一的項組成
特點:key 和 value 相同,不會重複
1.創建一個set
const s = new set([1,2,3]);
2.屬性
s.size;
3.方法
//1.添加
s.add(value)//添加一個數據,返回set本身
s.add('a').add('b').add('c')
//2.刪除
s.delete(value)//刪除一個數據,返回布爾值,表示是否刪除成功
s.delete('a')//true
s.delete('a')//false
//3.查找
s.has(value)//判斷是否是set的成員,返回布爾值
//4.格式化
s.clear()//清楚所有數據,沒有返回值
//5.keys()返回鍵名 values()返回值
console.log(s.keys())//setIterator{1,2,3,'b','c'}
console.log(s.values())//setIterator{1,2,3,'b','c'}
//6.entries() 返回鍵值對
console.log(s.entries())//setIterator{[1,1],[2,2],[3,3],['b','b'],['c','c']}
//7.forEach()
s.forEach(function(key,value,set){
//body...
})
Iterator之後會有講解
map
類似字典:用來存儲不重複的key的hash結構,不同於set的是,它是用[鍵,值]的形式來存儲數據的。
也類似與 json (javascrtip對象),json的鍵值只支持字符串string,雖然可以存數值,但是取出來也是string。
var obj1 = {a : 1}
var obj2 = {b : 2}
var obj3 = {}
obj3[obj1] = 1;
obj3[obj2] = 2;
//當鍵是對象的時候,瀏覽器對調用這個對象的toString方法轉成字符串然後存儲
//這時 用map 來存儲最佳
console.log(obj3)//{[object Object]: 2}
1.創建Map
const m = new Map([
['a',1],
['b',2]
])
2.屬性
m.size;
3.方法
/*1.set(key,value)設置鍵名和對應的值,如果已有則會刷新,返回map結構*/
m.set('c',3).set('d',4)
m.get(key)//取值 如果找不到返回undefind
m.delete(key)//刪除,返回布爾值,刪除失敗false
m.has(key)//判斷是否有某個key
m.clear()//刪除全部
keys()返回鍵名 values()返回值
entries() 返回鍵值對 forEach()
注意事項:
m.set(NaN,1).set(NaN,100); //在map中 NaN是同一個鍵
//引用數據類型比較的是內存地址 m.set({},1).set({},2);