首頁 > web前端 > js教程 > 主體

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

不言
發布: 2018-11-14 16:13:02
轉載
2297 人瀏覽過

這篇文章帶給大家的內容是關於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
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!