基本屬性它和數組相似,可是數組中的成員值是惟一的沒有重複值,Set
自己是一個構造函數用來生產一個數據結構javascript
let arr = [1,2,3,3,4,5,5,6,5]; let content = new Set(arr); console.log(content) //1,2,3,4,5,6
Set結構的實例有如下屬性java
構造函數,默認就是set函數:Set.prototype.constructor
數組
返回總數,Set.prototype.size
能夠簡寫爲Set.size
數據結構
add(value) | delete(value) | has(value) | clear() |
---|---|---|---|
添加數值返回set自己 | 刪除某個值返回布爾值表示是否成功刪除 | 返回布爾值查看該值是否存在與set | 清除全部set成員不返回值 |
keys( ) | values( ) | entries( ) | forEach( ) |
返回鍵名的遍歷器 | 返回鍵值的遍歷器 | 返回鍵值對的遍歷器 | 使用回調遍歷每一項 |
map( ) | filter( ) | ||
遍歷返回新數組 | 過濾篩選數值 |
Array.from
方法能夠把Set結構轉化爲數組函數
var items = new Set([1, 2, 3, 4, 5]); var array = Array.from(items);
去重方法測試
function ces(array) { return Array.from(new Set(array)); } ces([......]) //let arr = [1,2,2,3,4,3,6,5]; let unique = [...new Set(arr)];
遍歷測試prototype
//通用測試屬性 let set = new Set(['red', 'green', 'blue']); //依次替換set屬性測試 for (let item of set.keys()) { console.log(item); } //因爲Set結構沒有鍵名,只有鍵值(或者說鍵名和鍵值是同一個值),因此key方法和value方法的行爲徹底一致。
Set結構默承認遍歷對象因此能夠之間使用for ... of
循環♻️遍歷setcode
for (let x of set) { console.log(x); } //擴展運算符(...)內部使用for...of循環,因此也能夠用於Set結構。 let arr = [...set];
若是想遍歷的同時改變數組有兩種方法能夠選擇對象
//map() let set = new Set([1, 2, 3]); set = new Set([...set].map(val => val * 2)); // set的值是2, 4, 6 //Array.from() let set = new Set([1, 2, 3]); set = new Set(Array.from(set, val => val * 2)); // set的值是2, 4, 6
初次擬寫~不斷更新添加筆記ip