JavaScript中的Map和Set
JavaScript的默认对象表示方法{}可以视为其他语言中的Map或者Dictionary的数据结构,即一组键值对。
但是JavaScript的对象有个小问题,就是键必须是字符串,但实际上Number或者其他数据类型作为键也是非常合理的。
Map是一组键值对的结构,具有极快的查找速度。
var m = new Map([['Michael',95],['Bob',75],['Tracy',85]]);
m.get('Michael');//
初始化Map需要一个二维数组,或者直接初始化一个空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');//
m.delete('Adam');//删除key‘Adam’
m.get('Adam');//undefined
有雨一个key只能对应一个value,所以,多次对一个key放入value,后面的值会把前面的覆盖掉
var m = new Map();
m.set('Adam',67);
m.set('Adam',88);
m.get('Adam');//
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
通过add(key)方法可以添加元素到set中,可以重复添加,但是不会有效果
>>> s.add(4)
>>>s
{1,2,3,4}
>>> s.add(4)
>>> s
{1,2,3,4}
通过delete(key)方法可以删除元素:
var s = new Set ([1,2,3]);
s;//Set{1,2,3}
s.delete(3);
s;//Set{1,2}
JavaScript中的Map和Set的更多相关文章
- 由实现JavaScript中的Map想到的
项目中要用到JavaScript中的Map数据类型,它不像JDK那样有自带的,怎么办?搜了找到一个不错的(http://darkmasky.iteye.com/blog/454749).用这个可以满足 ...
- ES6新特性:Javascript中的Map和WeakMap对象
Map对象 Map对象是一种有对应 键/值 对的对象, JS的Object也是 键/值 对的对象 : ES6中Map相对于Object对象有几个区别: 1:Object对象有原型, 也就是说他有默认的 ...
- JavaScript中的Map
1.首先,在新版本的浏览器中,已经实现了对Map的原生支持:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Glob ...
- JavaScript 中的 Map
很多编程语言中都有类似Map这种 键-值对 的数据结构. 可惜,JavaScript没有. 幸运的是,可以自己构建一个Map对象. 对象的定义 <script type="text/j ...
- JavaScript中数组map()方法
JavaScript 数组map()方法创建一个新的数组使用调用此数组中的每个元素上所提供的函数的结果.语法 ? 1 array.map(callback[, thisObject]); 下面是参数的 ...
- JavaScript中的map方法
假设有一个函数f(x)=x²;作用在一个数组[1,2,3,4,5,6,7,8,9],通常我们会用遍历的方法来实现. function f(x){ return x * x; } var arr = [ ...
- javascript中使用Map
mis.comm.js.Map = function() { this.elements = new Array(); //获取MAP元素个数 this.size = function() { ret ...
- javascript中的map和reduce
今天在看“廖雪峰官方网站”的js教程时,看到了map和reduce.其中有一个练习题是:不使用js内置的parseInt()函数,利用map和reduce操作实现一个string2int()函数(先将 ...
- JavaScript中的Map、Set及其遍历
Map Map是一组键值对的结构,具有极快的查找速度. Map的定义. //空map设值key-value var m = new Map(); m.set("XiaoMing", ...
随机推荐
- Java入门系列-06-运算符
这篇文章为你搞懂2个问题 java 中的常用运算符有哪些?如何使用? 这些运算符的运算优先级是怎样的? 算数运算符 明显是做数学运算的,包括以下符号: + 加法运算 敲一敲: public class ...
- HDU 1166——敌兵布阵——————【线段树单点增减、区间求和】
敌兵布阵 Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Submit Status ...
- 吴恩达《Machine Learning Yearning》总结(21-30章)
21.偏差和方差举例 前提:对于人类而言,可以达到近乎完美的表现(即人类去做分类是误差可以接近0). (1)假设算法的表现如下:训练误差率:1%,开发误差率:11%:此时即为高方差(high vari ...
- sqlserver 限制用户只能访问指定的视图
项目中有一个需求,要求给其它单位提供数据,我们用到了视图,并要求不能让他们看到数据库中的其它数据,我们为其创建了单独的账号,并只能看到指定视图 一.创建视图 CREATE VIEW [dbo].[v_ ...
- C#自定义控件 在 Toolbox显示不了的问题
1) Close your solution2) Tools->Options->"Windows Form Designer" - find AutoToolboxP ...
- 4.kafka的安装部署
为了安装过程对一些参数的理解,我先在这里提一下kafka一些重点概念,topic,broker,producer,consumer,message,partition,依赖于zookeeper, ka ...
- ArcGisJS实现地图常用工具条、距离测量和面积测量(非官方实例)
常用地图工具包括:平移.拉框缩小.拉框放大.全图.距离测量.面积测量.清除标记,距离测量.面积测量没有使用官方自带的组件代码. 1.距离测量 2.面积测量 3.源代码 <!DOCTYPE htm ...
- ArcGIS for Server安全与LDAP配置
ArcGIS for Server安全与LDAP配置 1.安全性概述 ArcGIS Server使用基于角色的访问控制来管理对受保护资源的访问.访问GIS资源的权限只能分配给角色.单独的用户只能通过从 ...
- 03_CronTrigger
[Cron表达式] Quartz使用类似于Linux下的Cron表达式定义的时间规则,Cron表达式由6到7个空格分隔的时间字段组成. [ 字符说明 ] * :可以用在所有字段中,表示对应时间域内的每 ...
- qt打开url
QDesktopServices::openUrl(QUrl(QLatin1String(“http://blog.const.net.cn“)))