美文网首页
ES6新增的数据类型Map和Set

ES6新增的数据类型Map和Set

作者: 为光pig | 来源:发表于2021-03-13 14:27 被阅读0次

Javascript的默认对象表示方式 {} ,即一组键值对。

但是Javascript的对象有个小问题,就是键必须是字符串。但实际上Number或者其他数据类型作为键也是非常合理的。

为了解决这个问题,最新的ES6规范引入了新的数据类型Map。

1.Map

ES6新增了Map数据结构,Map对象保存键值对,任何值(原始值或对象)都可以作为一个键或一个值。

Map是一组键值对,有key 也有value。

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

set ,添加key-value

has,判断是否存在key

get,获取对应key的值

delete, 删除对应的key以及value

var m = new Map();  //空Map
m.set('one', 10);   //添加新的key-value
m.set('two', 20);

var a = m.has('one');  //是否存在key 'one'
a;        //true

var b = m.get('two');
b;        //20

m.delete('one');       //删除key 'one'

m.get('one');   //undefined

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

var m = new Map();
m.set('one', 10);
m.set('one', 20);
m.get('one');     //20

如果key是一个对象。

let m = new Map();
let obj = {
    name: 'one',
    sex: '男'
};
let a = m.set(obj, 'myObj');

console.log(a);      //Map { {name: 'one', sex: '男'} => 'myObj' }

2.Set

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

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

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

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

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

注意数字3和字符串'3'是不同的元素。

通过add() 方法可以添加元素到 Set中,乐意重复添加,但不会有效果:

s.add(4);
s;  // Set {1,2,3, '3', 4}
s.add(4);
s;  // 仍然是 Set {1,2,3, '3', 4}

通过delete() 方法可以删除元素:

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

相关文章

  • ES6新增Map和Set数据类型

    Map和Set Map 和 Set 是 ES6 标准新增的数据类型 Map JavaScript的对象(Objec...

  • 前端海底捞不定期跟新

    2017年8月 1,ES6 Map和Set Map ES6中新增的数据类型,类似PHP中的键值对形式结构 Set ...

  • js中的set和map类型

    Set与map Es6中新增加了两个数据类型set和map类型,下面就看下这两个类型的特性和用法。 一、 Set ...

  • JavaScript Map和Set

    注意:Map和Set是ES6标准新增的数据类型 Map:增强版的Object Object的属性名只能为strin...

  • js基础 - 草稿

    1 常用es6 class类继承;箭头函数;let const;新增的数据类型Symbl;set和map;解构赋值...

  • ES6新增了哪些特性?

    ES6新增了哪些特性? const(声明常量),let(声明变量),var(声明变量)全局 map和set数据类型...

  • Map和Set

    最新的ES6规范引入了新的数据类型Map Set Map Set

  • web前端ES6/7/8新特性

    ES6中新增了哪些数据类型?Symbol类型(基本)Set类型(复杂)Map类型(复杂)WeakSet类型(复杂)...

  • Map和Set

    map和set都是ES6标准新增的数据类型。js的默认对象表示方式是{},但是{}有个问题就是,键必须是字符串。但...

  • 《前端面试题》- JS基础 - 简单谈谈ES6新增了哪些内容

    问题 简单谈谈ES6新增了哪些内容 回答 ES新增的对象有: Symbol、Set、Map、WeakSet和Wea...

网友评论

      本文标题:ES6新增的数据类型Map和Set

      本文链接:https://www.haomeiwen.com/subject/vwsxcltx.html