Map与Set,ES6新增的数据类型
2020-06-23 04:41
274 查看
js的默认对象{}可以视为其它语言的map后者dictionary,即一组键值对,但是js的对象的键必须是字符串,非常的不合理,其它数据类型应该也是可以的,所以在es6中引入了Map与Set,可以通过以下方式来检测浏览器是否Map与Set;
'use strict'; var m = new Map(); var s = new Set(); console.log('你的浏览器支持Map和Set!');
Map:
Map是一组键值对结构,具有极快的查询速度,比如想要数组来查询学生成绩的话,需要两个数组,先搜寻学生名单,再比对学生成绩;但是使用Map的话可以同时引入学生与成绩;
var name=["David","Wei","Fuck"]; var score=[10,20,30]; //使用Map var score=new Map([["David",10],["Wei",20],["Fuck",30]]); score.get("David");//10 //初始化Map需要一个二维数组或者初始化一个空Map var m = new Map(); // 空Map m.set('Adam', 67); // 添加新的key-value m.set('Bob', 59); m.has('Adam'); // 是否存在key 'Adam': true m.get('Adam'); // 67 m.delete('Adam'); // 删除key 'Adam' m.get('Adam'); // undefined
Set
与Map相同,也是键的集合,但是没有value,并且因为键不能重复,所以可以用来给数组去重,而要创建一个Set,需要输入数组,或者创建一个空Set;
var s1 = new Set(); // 空Set var s2 = new Set([1, 2, 3]); // 含1, 2, 3 //重复元素会自动过滤 var s = new Set([1, 2, 3, 3, '3']); s; // Set {1, 2, 3, "3"} //通过add可以添加元素,delete可以删除元素 s.add(4); s; // Set {1, 2, 3, 4} s.add(4); s; // 仍然是 Set {1, 2, 3, 4} var s = new Set([1, 2, 3]); s; // Set {1, 2, 3} s.delete(3); s; // Set {1, 2} //关于具体利用Set去重数组方法; var arr=[1,2,1,2,3]; console.log("初始数组:"+arr); var s=new Set(arr); console.log(s); var arr2=Array.from(s); console.log("去重后的数组:"+arr2);
相关文章推荐
- ES6新增数据类型Map、Set。
- es6 map数据类型,要比set还很多
- Play Framework常用标签list,set,如何遍历list、map类型数据
- Python的基本语法,涵盖数据类型、循环判断、列表、map和set等
- Hadoop 数据类型与文件结构剖析 Sequence, Map, Set, Array, BloomMap Files
- JavaScript——数据类型、流程控制、Map和Set
- hash_set和hash_map自定义数据类型的处理
- ES6: Map和Set与iterable类型
- js-es6-Symbol新增的数据类型
- ES6新的数据类型set
- ES6 使用数据类型Set求交集、并集、差集
- ES6---新增数据类型Symbol
- ES6---新增数据结构set、map
- map、set数据类型
- es6 入门(四):Set和Map数据解构
- es6的新的数据类型:Map映射。
- 从零开始学_JavaScript_系列(44)——ES6新增数据结构:Set类型和WeakSet
- Play Framework常用标签list,set,如何遍历list、map类型数据
- Map和Set,javascript新的数据类型
- Python基础,基本类型(整型,浮点数等)数据结构(List,dic(Map),Set,Tuple),控制语句(if,for,while,continue or break):来自学习资料