首頁 >web前端 >js教程 >ES6中Set的用法介紹(程式碼範例)

ES6中Set的用法介紹(程式碼範例)

不言
不言轉載
2018-11-14 16:13:022362瀏覽

這篇文章帶給大家的內容是關於ES6中Set的用法介紹(程式碼範例),有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。

概述

Set是新的資料結構,跟其他語言的特性差不多,當然,身為js中的Set,他還是有一些屬於js的特點。

初始化

new Set([iterable]);

初始化一個Set有一個可選的參數,這個參數必須是一個可迭代的對象,可迭代對象包括String、Array、Array-Like obejct(Arguments、NodeList )、Typped Array、Set、Map和使用者定義的可迭代物件

字串

new Set('1234') // Set(4) {"1", "2", "3", "4"}

陣列

new Set([1,2,3,4]) // Set(4) {1, 2, 3, 4}

arguments

function sum(){
  return new Set(arguments)
}
sum(1,2,3,4)  // Set(4) {1, 2, 3, 4}

Set

new Set(new Set([1,2,3,4])) // Set(4) {1, 2, 3, 4}

新增值

初始化一個Set之後,可以繼續往裡面加值

let set=new Set()
set.add(1)
set.add(1)
set.add(1)
console.log(set) // Set(1) {1}

借用這個特性可以搞很多事,例如過濾重複值

new Set([1,1,2,3]) // Set(3){1,2,3}

但是請注意,兩個相同的對象字面量是不同的對象,具有不同的引用,所以Set是無法將兩個不同引用的對象標記為同一個的,即使他們看過去是一樣的

let a={num:1}
let b={num:1}
console.log(a===b) //false
new Set(a, b)// Set(2){{num:1},{num:2}}
let c=a
console.log(c===a)//true
new Set(a,c)// Set(1){{num:1}}

判斷是否包含

let set=new Set([1,2,3])
set.has(1) // true
set.has(4) //false

取得數量

let set=new Set([1,2,3])
set.size //3

刪除

let set=new Set([1,2,3])
set.delete(1)// true
set.delete(1)// false

清除

let set=new Set([1,2,3])
set.clear()
console.log(set) // Set(0){}

遍歷

let set=new Set([1,2,3])
set.forEach((s)=>{console.log(s)})
// 1
// 2
// 3

取得迭代器

let set=new Set([1,2,3])
let entries=set.entries()
console.log(entries.next().value) // [1,1]
console.log(entries.next().value) // [2,2]
console.log(entries.next().value) // [3,3]
console.log(entries.next().value) // undefined

for(let item of set){
    console.log(item)
}
// 1
// 2
// 3

取得鍵迭代器

let set=new Set([1,2,3])
let keys=set.keys()
console.log(keys.next().value) // 1
console.log(keys.next().value) // 2
console.log(keys.next().value) // 3
console.log(keys.next().value) // undefined

for(let {key} of set){
    console.log(key)
}
// 1
// 2
// 3

取得值迭代器

let set=new Set([1,2,3])
let values=set.values()
console.log(values.next().value) // 1
console.log(values.next().value) // 2
console.log(values.next().value) // 3
console.log(values.next().value) // undefined

for(let {value} of set){
    console.log(value)
}
// 1
// 2
// 3

以上是ES6中Set的用法介紹(程式碼範例)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:segmentfault.com。如有侵權,請聯絡admin@php.cn刪除