摘要:返回一個布爾值,表示該值是否為的成員。注意被加入了兩次方法可以將結構轉為數組。數組去重的函數遍歷的方法返回鍵名的遍歷器返回鍵值的遍歷器返回鍵值對的遍歷器使用回調函數遍歷每個成員需要特別指出的是,的遍歷順序就是插入順序。
新增加的數據類型 類似于數組 但是和數組不同的地方就是 里面不會存在相同的值,在里面 NaN都只能出現一個,但是里面有一個問題,就是引用類型的值是不會相等的
let set = new Set(); set.add({}); set.size // 1 set.add({}); set.size // 2
如何使用
let set = new Set();
參數(數組 或者 具有 iterator接口的其他數據)
// 例一 const set = new Set([1, 2, 3, 4, 4]); [...set] // [1, 2, 3, 4] // 例二 const items = new Set([1, 2, 3, 4, 5, 5, 5, 5]); items.size // 5 // 例三 const set = new Set(document.querySelectorAll("div")); set.size // 56 // 類似于 const set = new Set(); document .querySelectorAll("div") .forEach(div => set.add(div)); set.size // 56
特殊的應用 數組去重
[...new Set(array)]
全部的api 增加 刪除 查找 清除 (沒得修改)
Set.prototype.constructor:構造函數,默認就是Set函數。 Set.prototype.size:返回Set實例的成員總數。 add(value):添加某個值,返回 Set 結構本身。 delete(value):刪除某個值,返回一個布爾值,表示刪除是否成功。 has(value):返回一個布爾值,表示該值是否為Set的成員。 clear():清除所有成員,沒有返回值。
s.add(1).add(2).add(2); // 注意2被加入了兩次 s.size // 2 s.has(1) // true s.has(2) // true s.has(3) // false s.delete(2); s.has(2) // false
Array.from方法可以將 Set 結構轉為數組。
const items = new Set([1, 2, 3, 4, 5]); const array = Array.from(items); // 數組去重的函數 function dedupe(array) { return Array.from(new Set(array)); }
遍歷的方法
keys():返回鍵名的遍歷器
values():返回鍵值的遍歷器
entries():返回鍵值對的遍歷器
forEach():使用回調函數遍歷每個成員
需要特別指出的是,Set的遍歷順序就是插入順序。這個特性有時非常有用,比如使用 Set 保存一個回調函數列表,調用時就能保證按照添加順序調用。
set = new Set([1, 4, 9]); set.forEach((value, key) => console.log(key + " : " + value)) // 1 : 1 // 4 : 4 // 9 : 9
我們可以簡介使用數組的方法 先轉換為數組 利用 Array.from()或者 [...] 解構賦值
let set = new Set([1, 2, 3]); set = new Set([...set].map(x => x * 2)); // 返回Set結構:{2, 4, 6}
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/94193.html
摘要:本身是一個構造函數,用來生成數據結構。該數組的成員是一個個表示鍵值對的數組。張三張三事實上,不僅僅是數組,任何具有接口每個成員都是一個雙元素的數組的數據結構都剋以當作構造函數的參數。實例的屬性和操作方法屬性屬性返回結構的成員總數。 ES6提供了新的數據結構Set,它類似與數組,但是成員值都是唯一的,沒有重復的值。 Set本身是一個構造函數,用來生成Set數據結構。 const s = ...
摘要:返回一個布爾值,表示該值是否為的成員。清除所有成員,沒有返回值。上面代碼中,方法返回的遍歷器,同時包括鍵名和鍵值,所以每次輸出一個數組,它的兩個成員完全相等。因此,適合臨時存放一組對象,以及存放跟對象綁定的信息。 Js大部分歷史時期都只存在一種集合類型,也就是數組類型。數組在 JS 中的使用正如其他語言的數組一樣,但缺少更多類型的集合導致數組也經常被當作隊列與棧來使用。數組只使用了數值...
摘要:返回一個布爾值,表示該值是否為的成員。清除所有成員,沒有返回值。該數組中的每一項也必須是數組,內部數組的首個項會作為鍵,第二項則為對應值。返回所有成員的遍歷器需要特別注意的是,的遍歷順序就是插入順序。 Js大部分歷史時期都只存在一種集合類型,也就是數組類型。數組在 JS 中的使用正如其他語言的數組一樣,但缺少更多類型的集合導致數組也經常被當作隊列與棧來使用。數組只使用了數值型的索引,而...
摘要:返回一個布爾值,表示該值是否為的成員。清除所有成員,沒有返回值。返回的都是遍歷器對象。結構的實例的方法,用于對每個成員執行某種操作,沒有返回值。這個特點意味著,無法引用的成員,因此是不可遍歷的。數組成員是一個或多個表示鍵值對的一維數組。 本文字數:4700+,閱讀時間約10分鐘。 如果有理解不到位的地方,歡迎大家糾錯。 一、Set 【01】Set是一種數據結構。類似于數組,但是成員的值...
摘要:中模擬與長久以來,數組一直是中唯一的集合類型。用數組初始化集合事實上,只要是可迭代對象數組集合集合,都可以作為構造函數的參數。構造函數通過迭代器從參數中提取值。 ES5中模擬Set與Map 長久以來,數組一直是JavaScript中唯一的集合類型。如果開發者們需要使用非數值型索引,就會用非數組對象創建所需的數據結構,而這就是Set集合與Map集合的早期實現。 一般來說,Set集合常被用...
摘要:返回一個布爾值,表示該值是否為的成員。返回鍵名的遍歷器返回鍵值的遍歷器返回鍵值對的遍歷器使用回調函數遍歷每個成員需要特別指出的是,的遍歷順序就是插入順序。該數組的所有成員,都會自動成為實例對象的成員。這意味著,數組的成員只能是對象。 1.Set ES6 提供了新的數據結構 Set。它類似于數組,但是成員的值都是唯一的,沒有重復的值。Set 本身是一個構造函數,用來生成 Set 數據結構...
閱讀 1962·2021-11-19 09:40
閱讀 2146·2021-10-09 09:43
閱讀 3301·2021-09-06 15:00
閱讀 2819·2019-08-29 13:04
閱讀 2774·2019-08-26 11:53
閱讀 3536·2019-08-26 11:46
閱讀 2329·2019-08-26 11:38
閱讀 396·2019-08-26 11:27