SE6 Set

Set:ES6 新的數據結構,類似數組,但元素唯一
操作方法:
add(value)
添成員並返回Set本身
has(value)
通過 鍵 判斷 成員 是否存在
size
返回成員數量
delete(value)
通過 鍵 移除 成員
clear()
清空所有成員
 
 
const obj1 = { name: "tom" };
const s = new Set();
console.log(s);
const s1 = s.add(obj1) // 添加成員並返回Set本身
console.log(s, s1);
console.log(s.has(obj1)); // 通過 鍵 判斷 成員 是否存在
console.log(s.size); // 返回成員數量
s.delete(obj1) // 通過 鍵 移除 成員
console.log(s);
s.clear() // 清空所有成員
// 由於Set成員唯一性,所以沒有get方法

 

遍歷方法:

keys
返回 成員
values
返回 成員
entries
返回 [成員, 成員]
for of
返回 成員
forEach
返回 成員
 
const obj1 = { name: "tom" };
const obj2 = { name: "anne" };
const obj3 = { name: "jack" };
const s = new Set();
s.add(obj1)
s.add(obj2)
s.add(obj3)
console.log(s);

// keys():返回 成員
for (const item of s.keys()) {
  console.log(item)
}
// values():返回 成員
for (const item of s.values()) {
  console.log(item)
}
// entries():返回 [成員, 成員]
for (const item of s.entries()) {
  console.log(item)
}
// 返回 成員
for (const item of s) {
  console.log(item)
}
// 返回 成員
s.forEach(item => {
  console.log(item)
})

 

// 經典 Set 數組去重;Array.from 將類數組轉換成數組
let ArrayHeavy = (arr) => { return Array.from(new Set(arr)) };
var arr = ["妹子", 1, 1, undefined, 2, 3, true, 4, 3, "男人", 8, 3, "妹子", undefined, true];
console.log(ArrayHeavy(arr));

 

// 字符串去重;...把Set元素解構塞進[]數組,然後join數組轉字符串
var arr = [...new Set('aabbccdd')].join('')
console.log(arr); // abcd

 

// 空對象對應不同的內存地址,因此不是重複的數據
const s = new Set();
s.add({});
s.add({});
console.log(s); // Set(2) {{}, {}}

 

 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章