JavaScript(ES6)新增的map和set

JavaScript的默认对象表示方式{}可以视为其他语言中的Map或Dictionary的数据结构,即一组键值对。
但是JavaScript的对象有个小问题,就是键必须是字符串

一、Map

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

(1)Map实现,只需要一个“名字”-“年龄”的对照表,直接根据名字查找成绩,无论这个表有多大,查找速度都不会变慢。

  var m = new Map([
            ['swh', 22],
            ['lby', 21]
        ])
  var n = m.get('lby')
  console.log(n)    //输出21

(2)map常见方法
get() ----获取某个key或value
set() -----添加新的key-value(比如上面的名字-年龄)
delete() ----删除某个key或value
has() ----是否存在某个key或value

初始化Map需要一个二维数组,或者直接初始化一个空Map

set方法如下:

  var m = new Map();
   m.set('lby', 21); // 添加新的key-value
   m.set('swh', 22);
   console.log(m);

输出:在这里插入图片描述

delete方法如下:

var m = new Map();
      m.set('lby', 21); // 添加新的key-value
      m.set('swh', 22);
      m.delete('lby')
      console.log(m);

输出:
在这里插入图片描述
以此类推

由于一个key只能对应一个value,所以,多次对一个key放入value,后面的值会把前面的值冲掉:

var m = new Map();
m.set('Adam', 67);
m.set('Adam', 88);
m.get('Adam'); // 88

二、Set

Set和Map类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在Set中,没有重复的key。key直接放入set中

 var m = new Set([1, 2, 3, 3, 4]);
 console.log(m);

set()中有add()—添加 和delete()—删除 方法,一个一个添加删除

 var m = new Set([1, 2, 3, 3, 4]);
        m.add(5);  //1,2,3,4,5
        m.delete(2);
        m.delete(5);
        console.log(m); //1,3,4

重复元素在Set中自动被过滤
通过add(key)方法可以添加元素到Set中,可以重复添加,但不会有效果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值