前端js中的 set Map用法

Map方法:Map是一组键值对的结构,具有极快的查找速度。

举一个简单的例子:根据姓名查找对应年龄,如果用Array来实现,我们需要建立两个Array:

var name=["aa","bb","cc"];
var age=[23,43,12];

​​​给定一个名字,要查找对应的年龄,就先要在name中找到对应的位置,再从age取出对应的年龄,Array越长,耗时越长。

如果用map来实现的话,只需要姓名-年龄的对照表,直接根据name来查,无论数据有多大,速度都不会慢。

var a=[["aa",23],["bb",43],["cc",12]];
var person=new Map(a);
person.get("aa");          //23

 

初始化Map需要一个二维数组,或者直接初始化一个空MapMap具有以下方法:

1.可以利用set,添加新的key-value的键值对形式数据

2.可以利用has,来遍历是否存在key值得数据。

3.可以利用delete,删除对应数据。

var m= new Map();    //        初始化map
m.set("aa",11);    //新增数据key-value
m.set("bb",22);
m.has("aa");//has检查书否存在 ket:"aa"   :true
m.delete("aa");//删除对应数据
m.get("aa"); //underfind

set方法:SetMap类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在Set中,没有重复的key。

要创建一个Set,需要提供一个Array作为输入,或者直接创建一个空Set

var s1 = new Set(); // 空Set
var s2 = new Set([1, 2, 3]); // 含1, 2, 3

set方法比较实用的一个作用是可以去除数组重复数据。

重复元素在Set中自动被过滤:

var s = new Set([1, 2, 3, 3, '3']);
s; // Set {1, 2, 3, "3"}

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值