ES6之Set與Map加深理解

2022-05-01 15:51:08 字數 590 閱讀 9763

set

類似於陣列,但是成員的值都是唯一的,沒有重複的值,有序。

set函式可以接受乙個陣列(或者具有 iterable 介面的其他資料結構)作為引數,用來初始化。

用途陣列去重:

[...new set(array)]

或array.from(new set(array));

字串去重:

[...new set('ababbc')].join('')

// "abc"

map

「鍵」的範圍不限於字串,各種型別的值(包括物件)都可以當作鍵

任何具有 iterator 介面、且每個成員都是乙個雙元素的陣列的資料結構(詳見《iterator》一章)都可以當作map建構函式的引數

只有對同乙個物件的引用,map 結構才將其視為同乙個鍵。這一點要非常小心。

map 的鍵實際上是跟記憶體位址繫結的,只要記憶體位址不一樣,就視為兩個鍵。這就解決了同名屬性碰撞(clash)的問題,我們擴充套件別人的庫的時候,如果使用物件作為鍵名,就不用擔心自己的屬性與原作者的屬性同名。

map 的遍歷順序就是插入順序,物件無序

ES6入門之set和map

es6提供了新的資料結構set。它類似於陣列,但是成員的值都是唯一的,沒有重複的值。set函式可以接受乙個陣列 或類似陣列的物件 作為引數,用來初始化。例一 var set new set 1,2,3,4,4 set 1,2,3,4 var s newset 2,3,5,4,5,2,2 map x ...

ES6入門之set和map

es6提供了新的資料結構set。它類似於陣列,但是成員的值都是唯一的,沒有重複的值。set函式可以接受乙個陣列 或類似陣列的物件 作為引數,用來初始化。例一 var set new set 1,2,3,4,4 set 1,2,3,4 var s new set 2,3,5,4,5,2,2 map x...

Es6之Set和Map結構

set 類似陣列,但是它的成員沒有重複值 let s new set let s2 new set 1,2,3,4,1,2,3 1,2,3,4,1,2,3 foreach x s.add x console.log s console.log s2 可以看出會去掉重複值 那我們就可以利用這個特性來去...