首頁  >  文章  >  web前端  >  es6 set是什麼意思

es6 set是什麼意思

青灯夜游
青灯夜游原創
2022-03-09 18:28:122086瀏覽

set的意思為“集合”,是ES6提供的新資料結構,類似數組,但是成員的值都是唯一的,沒有重複的值。 Set物件允許使用者儲存任何類型的唯一值,無論是原始值或物件參考。

es6 set是什麼意思

本教學操作環境:windows7系統、ECMAScript 6版、Dell G3電腦。

Set是什麼?

Set(集合) 是 ES6 提供的新的資料結構,類似數組,但是成員的值都是唯一的,沒有重複的值。

Set 物件允許你儲存任何類型的唯一值,無論是原始值或是物件參考。

Set本身就是一個建構函數,用來產生Set資料結構。

Set 中的特殊值:

Set 物件儲存的值總是唯一的,所以需要判斷兩個值是否為恆等。有幾個特殊值需要特殊對待:

  • 0 與-0 在儲存判斷唯一性的時候是恆等的,所以不重複;

  • undefined 與undefined 是恆等的,所以不重複;

  • #NaN 與NaN 是不恆等的,但是在Set 中只能存一個,不重複。

Set 使用情形

1、用於陣列去重

let arr = [3, 5, 2, 2, 5, 5];
let setArr = new Set(arr)     // 返回set数据结构  Set(3) {3, 5, 2}

//方法一   es6的...解构
let unique1 =  [...setArr ];      //去重转数组后  [3,5,2]

//方法二  Array.from()解析类数组为数组
let unique2 = Array.from(setArr )   //去重转数组后  [3,5,2]

2、用於字串去重

let str = "352255";
let unique = [...new Set(str)].join("");     // 352

3、實作交集、並集、差集

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影片教學web前端

以上是es6 set是什麼意思的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn