这节学习Set数据结构,注意这里不是数据类型,而是数据结构。它是ES6中新的东西,并且很有用处。
Set的数据结构是以数组的形式构建的。
set的声明:
new Set 有去重的功能
1
2
|
let
setArr
=
new
Set
(
[
'wayne'
,
'judy'
,
'web'
,
'judy'
]
)
;
console
.
log
(
setArr
)
;
//Set {"wayne", "judy", "web"}
|
Set和Array 的区别是Set不允许内部有重复的值,如果有只显示一个,相当于去重。虽然Set很像数组,但是他不是数组。
Set值的增删查
追加add:
let serArr = new Set(['judy','wayne','hello','judy']) serArr.add('web');//追加
查找has 返回 true false:
let serArr = new Set(['judy','wayne','hello','judy']) console.log(serArr.has('judy')); //true console.log(serArr.has('judy1'));//false
删除 delete:
let serArr = new Set(['judy','wayne','hello','judy']) let serArr = new Set(['judy','wayne','hello','judy']) console.log(serArr.delete('judy'));//true console.log(serArr);//Set(2) {"wayne", "hello"}
删除 clear:
let serArr = new Set(['judy','wayne','hello','judy']); serArr.clear(); //删除所有的东西 console.log(serArr) ;//Set(0) {}
Set 循环:
for...of 循环
for(let item of serArr){ console.log(item); //judy wayne hello }
forEach循环
let serArr = new Set(['judy','wayne','hello','judy']); serArr.forEach((value)=>console.log(value)); //judy wayne hello
翻译成es5的写法 serArr.forEach(function (value) { return console.log(value); });
size属性
let serArr = new Set(['judy','wayne','hello','judy']); serArr.forEach((value)=>console.log(value)); console.log(serArr.size); //3