TypeScript Set型別
阿新 • • 發佈:2020-09-14
Set型別物件允許你儲存任何型別的唯一值,無論是原始值或者是物件引用。
// Set 型別例項化語法 new Set([iterable]); // Set 型別例項化 let set1 = new Set(); let set2 = new Set([1, 2, 3]); let set3 = new Set([1, 2, 3, 2, 1]); console.log(set1); // => Set {} console.log(set2); // => Set { 1, 2, 3 } console.log(set3); // => Set { 1, 2, 3 }
Set型別例項的屬性與方法:
// Set 型別屬性與方法 Set.prototype.size // 返回Set物件的值的個數 Set.prototype.add(value) // 在Set物件尾部新增一個元素。返回該Set物件。 Set.prototype.clear() // 移除Set物件內的所有元素。 Set.prototype.delete(value) // 移除Set的中與這個值相等的元素 Set.prototype.entries() // 返回一個新的迭代器物件,該物件包含Set物件中的按插入順序排列的所有元素的值的陣列。 Set.prototype.forEach(callbackFn[, thisArg]) // 按照插入順序,為Set物件中的每一個值呼叫一次callBackFn。 Set.prototype.has(value) // 返回一個布林值,表示該值在Set中存在與否。 Set.prototype.keys() // 返回一個新的迭代器物件,該物件包含Set物件中的按插入順序排列的所有元素的值。 Set.prototype.values() // 返回一個新的迭代器物件,該物件包含Set物件中的按插入順序排列的所有元素的值。
Set 型別屬性與方法舉例:
//Set 例項 let set = new Set([1, 2, 3]); console.log(set.size); // =>3 set.add(4); //Set{1,2,3,4} console.log(set.has(2)); // => true set.delete(1); //Set{2,3,4} set.clear(); //Set{}
Set 型別迭代遍歷舉例:
//迭代整個set let mySet = new Set([1, 2, 3]); //按順序輸出:1,2,3 for (let item of mySet) console.log(item); //按順序輸出:1,2,3 for (let item of mySet.keys()) console.log(item); //按順序輸出:1,2,3 for (let item of mySet.values()) console.log(item); //按順序輸出:1,2,3 //(鍵與值相等) for (let [key, value] of mySet.entries()) console.log(key); //按順序輸出:1,2,3 mySet.forEach(value => { console.log(value) });
Set型別與陣列型別互相轉換,舉例:
// Array 與 Set 互轉 let myArr = [1, 2, 3]; // 建立Set例項 let mySet = new Set(myArr); // Set { 1, 2, 3 } // 解構為陣列 [...mySet]; // [1, 2, 3] // 返回陣列 Array.from(mySet); // [1, 2, 3]
字串轉Set型別,利用 Set 為陣列去重,舉例:
// 字串轉 Set var text = 'CHINA'; var mySet = new Set(text); // Set {'C', 'H', 'I', 'N', 'A'} console.log(mySet.size); // => 5 // 陣列去重 const numbers = [1, 2, 2, 3, 3, 3, 4, 5, 4, 5, 1]; console.log([...new Set(numbers)]); // => [1, 2, 3, 4, 5]