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的更多相关文章

  1. JavaScript之Map对象

    前言 工欲善其事,必先利其器.这是一款以前在前端项目中没有使用过的.有趣的对象,咱来看看如何使用~ 并非arrayObj.map(function) //arrayObj.map与arrayObj.f ...

  2. JavaScript之map与parseInt的陷阱

    问题来源 ​ 这个问题的来源是学习廖雪峰老师JS教程.问题如下:小明希望利用map()把字符串变成整数,他写的代码很简洁: 'use strict'; var arr = ['1', '2', '3' ...

  3. javascript自定义Map对象

    javascript定义map对象开发前端组件的重要性就不过多阐述了,直接参考以下案例即可 <script type=text/javascript charset=utf-8> func ...

  4. JavaScript的Map和Set

    JavaScript的Map和Set 1.map:映射(通过key获得value).增.删 2.set:增.删.判断是否包含某个元素 1. Map <!DOCTYPE html><h ...

  5. JavaScript创建Map对象(转)

    JavaScript 里面本身没有map对象,用JavaScript的Array来实现Map的数据结构. /* * MAP对象,实现MAP功能 * * 接口: * size()     获取MAP元素 ...

  6. JavaScript Source Map 详解

    源码地址: http://www.ruanyifeng.com/blog/2013/01/javascript_source_map.html 上周,jQuery 1.9发布. 这是2.0版之前的最后 ...

  7. 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 ...

  8. JavaScript中Map和ForEach的区别

    译者按: 惯用Haskell的我更爱map. 原文: JavaScript — Map vs. ForEach - What’s the difference between Map and ForE ...

  9. 如何实现JavaScript的Map和Filter函数?

    译者按: 鲁迅曾经说过,学习JavaScript最好方式莫过于敲代码了! 原文: Master Map & Filter, Javascript’s Most Powerful Array F ...

随机推荐

  1. JS之document.cookie详解以及$.cookie的使用

    什么是cookie? cookie 是存储于访问者的计算机中的变量.每当同一台计算机通过浏览器请求某个页面时,就会发送这个 cookie.你可以使用 JavaScript 来创建和取回 cookie ...

  2. 《锋利的jQuery》笔记:插件的使用和写法

    jQuery插件的种类 1.封装对象方法 这种插件是将对象方法封装起来,用于对通过选择器获取的jQuery对象进行操作,是最常见的一种插件.此类插件可以发挥出jQuery选择器的强大优势,有相当一部分 ...

  3. 申请Office 365一年免费的开发者账号攻略(2018年10月份版本)

    要进行Office 365开发,当然需要有完整的Office 365环境才可以.为了便于广大开发人员快速地启动这项工作,微软官方给所有开发人员提供了免费的一年开发者账号   那么如何申请Office ...

  4. Spotlight on Mysql在Windows平台下的安装及使用简介

    Spotlight on Mysql在Windows平台下的安装及使用简介   by:授客 QQ:1033553122 1.   测试环境 Win7 64位 mysql-connector-odbc- ...

  5. Android包管理机制(二)PackageInstaller安装APK

    前言 在本系列上一篇文章Android包管理机制(一)PackageInstaller的初始化中我们学习了PackageInstaller是如何初始化的,这一篇文章我们接着学习PackageInsta ...

  6. Kotlin入门(24)如何自定义视图

    Android提供了丰富多彩的视图与控件,已经能够满足大部分的业务需求,然而计划赶不上变化,总是有意料之外的情况需要特殊处理.比如PagerTabStrip无法在布局文件中指定文本大小和文本颜色,只能 ...

  7. Scala之Calendar,SimpleDateFormat简单用法

    package com.dingxin.entrance import java.text.SimpleDateFormat import java.util.{Calendar, Date} /** ...

  8. Android/IOS手机使用Fiddler抓包

    对于Android和IOS开发及测试的同事来说抓包是一个很重要的事,有利于排查问题所在,快速定位问题.但长期以来一直没有一款可以快速抓包的工具,直到有了Fiddler2. 使用步骤: 1.  Fidd ...

  9. PhantomJs浏览器下载

    下载地址: http://phantomjs.org/download.html 链接:https://pan.baidu.com/s/1g9ZHLm0Fg56LN30CsDu-CA 密码:qhar

  10. (转)Debian 安装与卸载包命令

    1.APT主要命令apt-cache search  ------package 搜索包sudo apt-get install ------package 安装包sudo apt-get remov ...