JavaScript下一版本標準ES6的Set集合使用詳解
Set如果要用一句來描述,我們可以說: ???Set??
?是一種叫做集合的數據結構。
?什么是集合?
集合是由一堆無序的、相關聯(lián)的,且不重復的內存結構【數學中稱為元素】組成的組合。
??Set?
??是??es6?
?新增的數據結構,類似于數組,但是成員的值都是唯一的,沒有重復的值,我們一般稱為集合
??Set?
?本身是一個構造函數,用來生成 Set 數據結構
const s = new Set();
增刪改查
??Set?
?的實例關于增刪改查的方法:
- add()
- delete()
- has()
- clear()
add()
添加某個值,返回 ??Set?
? 結構本身
當添加實例中已經存在的元素,??set?
?不會進行處理添加
s.add(1).add(2).add(2); // 2只被添加了一次
delete()
刪除某個值,返回一個布爾值,表示刪除是否成功
s.delete(1)
has()
返回一個布爾值,判斷該值是否為??Set?
?的成員
s.has(2)
clear()
清除所有成員,沒有返回值
s.clear()
遍歷
??Set?
?實例遍歷的方法有如下:
關于遍歷的方法,有如下:
- keys():返回鍵名的遍歷器
- values():返回鍵值的遍歷器
- entries():返回鍵值對的遍歷器
- forEach():使用回調函數遍歷每個成員
??Set?
?的遍歷順序就是插入順序
??keys?
?方法、??values?
?方法、??entries?
?方法返回的都是遍歷器對象
let set = new Set(['red', 'green', 'blue']); for (let item of set.keys()) { console.log(item); } // red // green // blue for (let item of set.values()) { console.log(item); } // red // green // blue for (let item of set.entries()) { console.log(item); } // ["red", "red"] // ["green", "green"] // ["blue", "blue"]
??forEach()?
?用于對每個成員執(zhí)行某種操作,沒有返回值,鍵值、鍵名都相等,同樣的??forEach?
?方法有第二個參數,用于綁定處理函數的??this?
?
let set = new Set([1, 4, 9]); set.forEach((value, key) => console.log(key + ' : ' + value)) // 1 : 1 // 4 : 4 // 9 : 9
擴展運算符和??Set?
? 結構相結合實現數組或字符串去重
// 數組 let arr = [3, 5, 2, 2, 5, 5]; let unique = [...new Set(arr)]; // [3, 5, 2] // 字符串 let str = "352255"; let unique = [...new Set(str)].join(""); // "352"
實現并集、交集、和差集
let a = new Set([1, 2, 3]); let b = new Set([4, 3, 2]); // 并集 let union = new Set([...a, ...b]); // Set {1, 2, 3, 4} // 交集 let intersect = new Set([...a].filter(x => b.has(x))); // set {2, 3} // (a 相對于 b 的)差集 let difference = new Set([...a].filter(x => !b.has(x))); // Set {1}
到此這篇關于JavaScript下一版本標準ES6的Set集合使用詳解的文章就介紹到這了,更多相關ES6的Set集合內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
JS彈出層遮罩,隱藏背景頁面滾動條細節(jié)優(yōu)化分析
下面小編就為大家?guī)硪黄狫S彈出層遮罩,隱藏背景頁面滾動條細節(jié)優(yōu)化分析。小編覺得挺不錯的,現在分享給大家,也給大家做個參考2016-04-04JS判斷來路是否是百度等搜索索引進行彈窗或自動跳轉的實現代碼
這篇文章主要介紹了JS判斷來路是否是百度等搜索索引進行彈窗或自動跳轉的實現代碼的相關資料,需要的朋友可以參考下2016-10-10使用Promise和JavaScript有效處理1000個請求的方法
在現代Web開發(fā)中,處理高并發(fā)請求是一個常見的挑戰(zhàn),當我們需要從服務器獲取大量數據或執(zhí)行多個異步任務時,如何有效地管理請求的并發(fā)性和性能變得至關重要,本文將介紹如何使用Promise和JavaScript來管理高并發(fā)請求,需要的朋友可以參考下2023-09-09