es6的set集合可以使用add()方法來(lái)增加元素。Set集合是一種數(shù)據(jù)結(jié)構(gòu),結(jié)構(gòu)類(lèi)似于數(shù)組,且沒(méi)有重復(fù)的值;其內(nèi)置的add()方法可以為集合添加元素,語(yǔ)法“set.add(值);”,添加完成后會(huì)返回Set結(jié)構(gòu)本身。
本教程操作環(huán)境:windows7系統(tǒng)、ECMAScript 6版、Dell G3電腦。
Set集合:是一種數(shù)據(jù)結(jié)構(gòu),結(jié)構(gòu)類(lèi)似于數(shù)組,且沒(méi)有重復(fù)的值。主要用于數(shù)組去重,字符串去重。
1、操作方法
(1)add():添加值,返回Set結(jié)構(gòu)本身
let set = new Set() set.add(1); console.log(set); set.add(1).add(2).add(1) console.log(set) //注:拓展運(yùn)算符 (...)可以將Set值擴(kuò)展出來(lái) console.log(...set) console.log([...set])
登錄后復(fù)制
(2)delete():刪除值,冰返回一個(gè)boolean表示是否刪除成功(3)has():判斷該 值是否存在,并返回一個(gè)Boolean
let set = new Set() set.add(1).add(2); let a = set.delete(1); console.log(set) //注:拓展運(yùn)算符 (...)可以將Set值擴(kuò)展出來(lái) console.log(...set) console.log(a) set.delete(3) console.log(...set)
登錄后復(fù)制
(3)has():判斷該值是否存在,并返回一個(gè)Boolean
let set = new Set() set.add(1).add(2); let a = set.has(1);//true let b = set.has(3);//false console.log(a,b)
登錄后復(fù)制
(4)clear():清除 所有值。沒(méi)有返回值
let set = new Set(); set.add(1).add(2); set.clear(); console.log(set,[...set]);//Set(0){} []
登錄后復(fù)制
2、遍歷方法:
(1)由于Set只有鍵值沒(méi)有鍵名,也 可以說(shuō)鍵 和值 是同一個(gè)(鍵、值相同,可以省略),所以keys和values的返回值相同
let set = new Set(); set.add(1).add(2).add(3) for(let i of set.keys()){ //keys遍歷 console.log(i) } for(let i of set.values()){ //values遍歷 console.log(i) } set.add('hello').add('world'); for( let i of set.entries() ){ //打印鍵值對(duì) console.log(i) }
登錄后復(fù)制
(2)forEach():
let set = new Set(); set.add('hello').add('world'); set.forEach((key,val)=>{ console.log(key + '||' + val) })
登錄后復(fù)制
(3)Set可以接受一個(gè)數(shù)組作為參數(shù):
let arr = ['小紅','小明','小強(qiáng)','小明']; let set = new Set(arr); console.log(...set)
登錄后復(fù)制
(4)Set實(shí)現(xiàn)并集與交集:
let arr = [4,5,6]; let list = [5,6,7]; let setA = new Set(arr); let setB = new Set(list); //并集 :集合A與集合 B的并集A U B let bj = new Set([...setA,...setB]) console.log(bj)// 返回Set結(jié)構(gòu) Set(4) {4,5,6,7} //交集:集合A 與 集合B 的交集 A ∩ B let jj = new Set([...setA].filter(val => setB.has(val)))//通過(guò) filter拿到符合條件的值 console.log(jj)//Set(2) { 5, 6 }
登錄后復(fù)制
【