javascript之Map
javascript中的map,我用的不是特别多,倒是Java中的Map或HashMap,经常用。
顺便围绕几个方面介绍一下map?
1.Map对象
Map对象是一种有对应键值对的对象,JS的Object也是键值对的对象。
ES6中的Map相对Object对象有几个区别?
(1)Object对象有原型,也就是说它有默认的key值在对象上面,除非我们使用Object.create(null)创建一个没有原型的对象;
(2)在Object中,只能把String和Symbol作为key值,但是在Map中,key值可以是任何基本类型(String,Number,Boolean,undefined,NaN…),或者对象(Map,Set,Object,Function,Symbol,null…);
(3)通过Map中的size属性,可以很方便地获取Map长度,要获取Object的长度,你只能用别的方法;
Map实例对象的key值可以为一个数组或者一个对象,或者一个函数,比较随意,而且Map对象实例中数据的排序是根据用户push的顺序进行排序的,而Object实例中key,value的顺序则有些规律(它们会先排数字开头的值,然后才是字符串开头的key值);
2.Map实例属性
map.size这个属性和数组的length功能一样,都表示当前实例的长度。
3.Map实例的方法
clear() 删除所有的键值对;
delete(key) 删除指定键;
entries() 返回一个迭代器,迭代器按照对象的插入顺序返回[key,value];
forEach(callback,context) 循环执行函数并把键值对作为参数,context为执行函数的上下文this;
get(key) 返回Map对象key相对的value值;
has(key) 返回布尔值,判断Map对象是否存在指定的key;
keys() 返回一个迭代器,迭代器按照插入的顺序返回每一个key元素;
set(key,value) 给Map对象设置key/value键值对,返回这个Map对象(相对于JavaScript的Set,Set对象添加元素的方法叫add,而Map对象添加元素的方法为set)
iterator 和entireds()方法一样,返回一个迭代器,迭代器按照对象的插入顺序返回[key,value]
代码示例如下(这段与后台交互的代码,主要是为了测试):
<html>
<head>
<script src="jquery-1.8.0.min.js"></script>
</head>
<body> <script> $.ajax({
url:"http://localhost:2019/comments/recentsComments",
type:"GET",
contentType: 'application/json;charset=utf-8',
dataType : 'json',
success:function(data){ console.log(data.code); var m = new Map(); m.set("data",data.list); console.log(m.get("data")); },error:function(){ }
}); </script>
</body>
</html>
本文主要参考链接如下所示:
ES6新特性:JavaScript中的Map和WeakMap对象:https://www.cnblogs.com/diligenceday/p/5484130.html
javascript之Map的更多相关文章
- JavaScript之Map对象
前言 工欲善其事,必先利其器.这是一款以前在前端项目中没有使用过的.有趣的对象,咱来看看如何使用~ 并非arrayObj.map(function) //arrayObj.map与arrayObj.f ...
- JavaScript之map与parseInt的陷阱
问题来源 这个问题的来源是学习廖雪峰老师JS教程.问题如下:小明希望利用map()把字符串变成整数,他写的代码很简洁: 'use strict'; var arr = ['1', '2', '3' ...
- javascript自定义Map对象
javascript定义map对象开发前端组件的重要性就不过多阐述了,直接参考以下案例即可 <script type=text/javascript charset=utf-8> func ...
- JavaScript的Map和Set
JavaScript的Map和Set 1.map:映射(通过key获得value).增.删 2.set:增.删.判断是否包含某个元素 1. Map <!DOCTYPE html><h ...
- JavaScript创建Map对象(转)
JavaScript 里面本身没有map对象,用JavaScript的Array来实现Map的数据结构. /* * MAP对象,实现MAP功能 * * 接口: * size() 获取MAP元素 ...
- JavaScript Source Map 详解
源码地址: http://www.ruanyifeng.com/blog/2013/01/javascript_source_map.html 上周,jQuery 1.9发布. 这是2.0版之前的最后 ...
- javascript google map circle radius_changed ,angularjs google map circle radius_changed
javascript: var cityCircle = new google.maps.Circle({ strokeColor: '#FF0000', strokeOpacity: 0.8, st ...
- JavaScript中Map和ForEach的区别
译者按: 惯用Haskell的我更爱map. 原文: JavaScript — Map vs. ForEach - What’s the difference between Map and ForE ...
- 如何实现JavaScript的Map和Filter函数?
译者按: 鲁迅曾经说过,学习JavaScript最好方式莫过于敲代码了! 原文: Master Map & Filter, Javascript’s Most Powerful Array F ...
随机推荐
- BZOJ4484: [Jsoi2015]最小表示(拓扑排序乱搞+bitset)
Time Limit: 20 Sec Memory Limit: 512 MBSubmit: 348 Solved: 172[Submit][Status][Discuss] Descriptio ...
- PHP对接淘宝客api完成APP引流优惠券
淘宝客现在对多数人来说已经耳熟能详了,属于CPS(Cost Per Sale),一种网络广告收费标准,以实际销售产品数量来换算广告刊登金额.其他收费标准还有常见的CPC(Cost Per Click ...
- Android 程序崩溃之后fragment出现画面重叠问题
1.解决方法: 直接在包含Fragment的Activity中复写onSaveInstanceState()方法,使其空实现 @Override protected void onSaveInstan ...
- Space Time Varying Color Palette
PDF Space Time Varying Color Palettes from Bo Zhou
- (网页)angularJs中怎么模拟jQuery中的this?(转)
转载自mini_fan博客园: 今天想在Angular项目中使用jQuery的this功能,发现undefined.代码如下: HTML部分: <p ng-click="testCli ...
- 账号配置vue版本的扫码下单以及对店铺进行装修的步骤
新版vue配置说明文档 管理员后台: 1.配置管理-店铺配置(子账号)-扫码点餐tab页-开启vue版 2.配置管理-店铺配置(主账号)-扫码点餐tab页-开通装修配置 商家后台: 1.主账号-门店设 ...
- 设计模式java----单例模式
一.懒汉式单例 在第一次调用的时候实例化自己,Singleton的唯一实例只能通过getInstance()方法访问.线程不安全 /** * Created by Admin on 2017/3/19 ...
- 初识kafka
简介 Kafka经常用于实时流数据架构,用于提供实时分析.本篇将会简单介绍kafka以及它为什么能够广泛应用. kafka的增长是爆炸性的.2017年超过三分之一的世界五百强公司在使用kafk ...
- Elasticsearch深入搜索之全文搜索及JavaAPI使用
一.基于词项与基于全文 所有查询会或多或少的执行相关度计算,但不是所有查询都有分析阶段. 和一些特殊的完全不会对文本进行操作的查询(如 bool 或 function_score )不同,文本查询可以 ...
- Linux进程核心调度器之主调度器schedule--Linux进程的管理与调度(十九)
主调度器 在内核中的许多地方, 如果要将CPU分配给与当前活动进程不同的另一个进程, 都会直接调用主调度器函数schedule, 从系统调用返回后, 内核也会检查当前进程是否设置了重调度标志TLF_N ...