javascript-new Map 和 new Set的用法

1.定义

Set 对象:Set 是唯一值的集合,每个值在 Set 中只能出现一次,一个 Set 可以容纳任何数据类型的任何值。即用来管理键值对(key:value)

Map 对象:Map 对象存有键值对,其中的键可以是任何数据类型。即用来管理一组键(key)

2.用法

基本的 Map() 方法

MethodDescription
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()基础用法:

MethodDescription
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]
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
JavaScript中,Map是一种数据结构,它可以将键值对存储在一个对象中,其中键和值可以是任何类型的数据。Map的使用方法非常简单,可以使用new操作符和Map构造函数来创建一个新的Map对象。例如: ``` let map = new Map(); ``` 上面的代码创建了一个新的空Map对象。我们可以使用set方法向Map对象添加新的键值对,例如: ``` map.set('name', '张三'); map.set('age', 18); ``` 上面的代码向Map对象中添加了两个键值对:'name'对应的值为'张三','age'对应的值为18。我们也可以使用get方法获取Map对象中的某个键对应的值,例如: ``` console.log(map.get('name')); // 输出:张三 console.log(map.get('age')); // 输出:18 ``` 上面的代码分别输出了Map对象中'name'和'age'对应的值。我们还可以使用has方法检查某个键是否存在于Map对象中,例如: ``` console.log(map.has('name')); // 输出:true console.log(map.has('gender')); // 输出:false ``` 上面的代码分别检查了Map对象中是否存在'name'和'gender'这两个键。我们还可以使用delete方法删除Map对象中的某个键值对,例如: ``` map.delete('age'); console.log(map.get('age')); // 输出:undefined ``` 上面的代码删除了Map对象中'age'对应的键值对,并使用get方法检查该键是否存在于Map对象中(输出结果为undefined,表示该键不存在)。 综上所述,Map对象提供了一种灵活的存储键值对的方式,可以方便地进行添加、删除、查找等操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

菜鸡的觉醒之路

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值