# Set
Set(es6)是对es5中Array的一种拓展。
| 对比项 | Array | Set | 备注 |
|---|---|---|---|
| 值的重复性 | 不可重复 | 可重复 |
下面是Set的基本用法:
# 查
var mySet = new Set();
var keyObj = {};
var keyFunc = function(){};
var keyStr = 'uncle-yang';
// add key
mySet.add(keyObj);
mySet.add(keyFunc);
mySet.add(keyStr);
// get size
console.log(mySet.size); // 3
// 判断Set中,是否有值
console.log(mySet.has(keyObj)); // true
console.log(mySet.has({})); // false
// 查看Set中的所有的value
var values = mySet.values();
console.log(values.next().value); // {}
console.log(values.next().value); // function(){}
console.log(values.next().value); // 'uncle-uang'
// 循环遍历
for(let item of mySet){
console.log(key); // 依次输出: {}, function(){}, 'uncle-uang'
}
mySet.forEach((item, Set)=>{
console.log(item); // 依次输出: {}, function(){}, 'uncle-uang'
});
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# 增
var mySet = new Set();
var keyObj = {};
var keyFunc = function(){};
var keyStr = 'uncle-yang';
// add key
mySet.add(keyObj);
mySet.add(keyFunc);
mySet.add(keyStr);
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
# 删
var mySet = new Set();
var keyStr = 'uncle-yang';
// add key
mySet.add(keyStr);
// 添加一个值
mySet.add('temp');
//删除这个key
mySet.delete('temp');
console.log(mySet.has('temp')); // false
console.log(mySet.get('temp')); // undefined
// 清空Set所有的键值对
mySet.clear();
console.log(mySet.size); // 0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18