ES6學習筆記之Set

Set

基本屬性它和數組相似,可是數組中的成員值是惟一的沒有重複值,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實例和方法

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

相關文章
相關標籤/搜索