JavaScript学习日记5 map和set
2015-11-03 18:14
573 查看
map
是一组键值对的结构,具有极快的查找速度。
例如:查找学生的成绩,普通Arry数组操作会创建两个普通的Arry
var name = {'aaaa','bbbb','cccc'};
var scores = { 96,97,98 }
给定一个名字,要查找对应的成绩,就先要在names中找到对应的位置,再从scores取出对应的成绩,Array越长,耗时越长。
如果用Map实现,只需要一个“名字”-“成绩”的对照表,直接根据名字查找成绩,无论这个表有多大,查找速度都不会变慢。用JavaScript写一个Map如下:
var m = new Map([['aaa',96],['bbb',97],['ccc',98]]); m.get('aaa') //96
map具有以下的操作方法
set
重复元素在
注意数字
通过
通过
是一组键值对的结构,具有极快的查找速度。
例如:查找学生的成绩,普通Arry数组操作会创建两个普通的Arry
var name = {'aaaa','bbbb','cccc'};
var scores = { 96,97,98 }
给定一个名字,要查找对应的成绩,就先要在names中找到对应的位置,再从scores取出对应的成绩,Array越长,耗时越长。
如果用Map实现,只需要一个“名字”-“成绩”的对照表,直接根据名字查找成绩,无论这个表有多大,查找速度都不会变慢。用JavaScript写一个Map如下:
var m = new Map([['aaa',96],['bbb',97],['ccc',98]]); m.get('aaa') //96
map具有以下的操作方法
var m = new Map(); m.set('aaa',67) ; //添加一个新得key-value; m.get('aaa') //67 m.set('bbb',67) ; m.has('bbb'); //是否存在key 'bbb': true m.delete('bbb'); //删除key'bbb' 一个key只能对应一个value,所以,多次对一个key放入value,后面的值会把前面的值冲掉: var m = new Map(); m.set('a1',67) ; m.set('a1',68) ; m.get('a1'); // 68
set
Set和
Map类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在
Set中,没有重复的key。
重复元素在
Set中自动被过滤:
var s = new Set([1, 2, 3, 3, '3']); s; // Set {1, 2, 3, "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}
相关文章推荐
- js常用正则表达式
- javascript作用域(整合)
- 代码段:js表单提交检测
- 【详解】Python接收json数据联合java代码解密
- 实现JS复制、粘贴,Chrome/Firefox下可用
- js动画笔记
- js中json字符串转换成json对象
- jsp页面全选操作
- 统一的Json组件和csv下载组件
- 彻底理解JavaScript原型
- json字符串转换为对象,json字符串中含数组
- JavaScript函数,语法,定义方式
- javascript 模块化编程 1
- javascript定义对象写法
- JS之——获取GET参数
- JavaScript基础学习(五)---Math(算数)对象
- jsp servlet 上传文件
- Newtonsoft.Json 将C#对象转化为json格式
- JS/JavaScript前台异步加载并调用回调函数
- 彻底理解JavaScript原型