1.定义
Set 对象:Set 是唯一值的集合,每个值在 Set 中只能出现一次,一个 Set 可以容纳任何数据类型的任何值。即用来管理键值对(key:value)
Map 对象:Map 对象存有键值对,其中的键可以是任何数据类型。即用来管理一组键(key)
2.用法
基本的 Map() 方法:
Method | Description |
---|---|
new Map() | 创建新的 Map 对象 |
set() | 为 Map 对象中的键设置值 |
get() | 获取 Map 对象中键的值 |
entries() | 返回 Map 对象中键/值对的数组 |
keys() | 返回 Map 对象中键的数组 |
values() | 返回 Map 对象中值的数组 |
clear() | 删除 Map 中的所有元素 |
delete() | 删除由键指定的元素 |
has() | 如果键存在,则返回 true |
forEach() | 为每个键/值对调用回调 |
Map() 属性:
size 返回长度
// 创建新的 Map 对象
var m=new Map()
// 添加键值对
m.set("name","xiaobaigis")
// 添加键值对
m.set(5,"number")
// 获取指定键的值
m.get(5) // 5
m.get("name") // xiaobaigis
// 判断是否有指定键
m.has(5) // true
// 删除指定键
m.delete(5)
// 再判断是否存在某指定键
m.has(5) //false
// 清空map集合
m.clear()
// 获取集合大小
m.size //0
Map 和Array 的相互转化
const keyValue = [['a', 1], ['b', 2]];
const m2 = new Map(keyValue);
console.log(m2.get('a'));
console.log(Array.from(m2));
console.log([...m2]); // spread to array
console.log(Array.from(m2.keys()));
//1
//[ [ 'a', 1 ], [ 'b', 2 ] ]
//[ [ 'a', 1 ], [ 'b', 2 ] ]
//[ 'a', 'b' ]
map 合并, key相同,保留最后的value
const first = new Map([
[1, 'a'],
[2, 'b'],
[3, 'c'],
])
const second = new Map([
[1, 'd'],
[2, 'e']
])
// Merge two maps. The last repeated key wins.
// Spread operator essentially converts a Map to an Array
const merged = new Map([...first, ...second])
console.log(merged.get(1)) // d
console.log(merged.get(2)) // e
console.log(merged.get(3)) // c
Set()基础用法:
Method | Description |
---|---|
new Set() | 创建新的 Set 对象。 |
add() | 向 Set 添加新元素。 |
clear() | 从 Set 中删除所有元素。 |
delete() | 删除由其值指定的元素。 |
entries() | 返回 Set 对象中值的数组。 |
has() | 如果值存在则返回 true。 |
forEach() | 为每个元素调用回调。 |
keys() | 返回 Set 对象中值的数组。 |
values() | 与 keys() 相同。 |
size | 返回元素计数。 |
// 创建set空集合
var s=new Set()
// 添加数字
s.add(2)
// 添加数字
s.add(2)
// 添加字符串
s.add('name')
// 添加对象
s.add({})
// 判断是否存在该键
s.has(2) //true
// 判断是否存在该键
s.has(3) //false
// 删除键2
s.delete(2)
// 判断是否存在该键
s.has(2) //false
// 集合大小
s.size //2
set() 去重
1 .set集合可以添加数字,字符串,对象等类型的键,
2 .键不重复
let s1 =new Set([2,3,4,5,63,2,3,2,3]) // {2, 3, 4, 5, 63}
let s2 =new Set(["name","sfd","name"]) // {'name', 'sfd'}
去重
let init = [2,3,4,5,63,2,3,2,3]
let result =[...new Set(init)]// [2, 3, 4, 5, 63]