點燈坊

失くすものさえない今が強くなるチャンスよ

ECMAScript 之 Set Type

Sam Xiao's Avatar 2024-07-23

ECMAScript 2015 亦提供 Set,與 Dart 的 Set 相同,只是語法不太一樣。

Version

ECMAScript 2015

Set

let set1 = new Set([1, 2, 3])
set1.add(3)

console.log(set1)
  • new:需使用 new 建立 Set
  • Set 可自由地 新增修改刪除清空 Set 內的 element,若重複則無法再新增
  • 可將 Set 視為 不重複 的 Array

Use Set for Duplicated Array

var list1 = [1, 2, 3, 3]
var list2 = [...new Set(list1)]

console.log(list1) // [1, 2, 3, 3]
console.log(list2) // [1, 2, 3]
  • 由於 Set 不重複的特性,可將具有重複值的 Array 轉成 Set 去除重複值,最後再轉回 Array
var list1 = [1, 2, 3, 3]
var list2 = Array.from(new Set(list1))

console.log(list1) // [1, 2, 3, 3]
console.log(list2) // [1, 2, 3]
  • 也可使用 Array.from() 將 Set 轉回 Array

Conclusion

  • JavaScript 的 Set 與 Dart 觀念完全一樣,只是語法稍有不同

Reference

MDN, Set