刘流的博客

ES6. 6.Set 和 Map

Word count: 624Reading time: 3 min
2020/08/30 Share

一. Set

Set 数据结构

定义一个 Set 类型的数据

1
let s = new Set()

定义一个 Set 类型的数据并且向里面添加数据

1
let s = new Set([1,2,3,4])

添加数据的方法

1
2
3
s.add('hello')

console.log(s);//Set { 1, 2, 3, 4, 'hello' }

可以连续向里面添加数据

1
2
3
s.add('World').add('JavaScript')

console.log(s);//Set { 1, 2, 3, 4, 'hello', 'World', 'JavaScript' }

set 存入了重复的数据会自动将重复的数据进行过滤

1
2
3
s.add('hello')

console.log(s);//Set { 1, 2, 3, 4, 'hello', 'World', 'JavaScript' }

删除数据

1
2
3
s.delete('hello')

console.log(s);//Set { 1, 2, 3, 4, 'World', 'JavaScript' }

清空全部数据

1
2
3
s.clear()

console.log(s);//Set {}

判断里面是否含有某个值

1
2
3
console.log(s.has('hello'));//false

console.log(s.has('World'));//true

查询set的大小

1
console.log(s.size);// 6

更多方法

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
console.log(s.keys());

// [Set Iterator] { 1, 2, 3, 4, 'World', 'JavaScript' }



console.log(s.values());

// [Set Iterator] { 1, 2, 3, 4, 'World', 'JavaScript' }



console.log(s.entries());

// [Set Entries] {

// [ 1, 1 ],

// [ 2, 2 ],

// [ 3, 3 ],

// [ 4, 4 ],

// [ 'World', 'World' ],

// [ 'JavaScript', 'JavaScript' ]

// }

遍历set

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
s.forEach((item)=>{

console.log(item);

})



for (const iterator of s) {

console.log(iterator);

}



// 1

// 2

// 3

// 4

// World

// JavaScript

二. Map

Map 对象保存键值对,并且能够记住键的原始插入顺序。任何值(对象或者原始值) 都可以作为一个键或一个值。

声明一个 map 数据结构

1
2
3
4
5
let map = new Map([[1,2],[3,4]])

console.log(map);//Map { 1 => 2, 3 => 4 }

console.log(typeof map); // Object

设置 map 里面的属性值

1
2
3
4
5
map.set(1,2)

map.set(3,'value-4')

map.set(1,'value-3')

删除操作

1
map.delete(1)

清空操作

1
map.clear()

其他操作

1
2
3
// 获取大小

console.log(map.size);

查看是否有某个属性

1
console.log(map.has(2));

获取某个属性

1
console.log(map.get(1));

一些对象的操作

1
console.log(map.keys(),map.values(),map.entries());

map 数据结构的属性可以是函数

1
2
3
4
5
6
7
8
9
let o = function () {

console.log('o');

}

map.set(o,4)

console.log(map.get(o));

遍历操作

1
2
3
4
5
6
7
8
9
10
11
12
13
map.forEach((value,key)=>{

console.log(value,key);

})



for (const [key,value] of map) {

console.log(key,value);

}
CATALOG