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}

最新文章

  1. 网络编程(一):用C#下载网络文件的2种方法
  2. 学习笔记之Linux内核编译过程
  3. 树莓派编译C++
  4. hdu2588 gcd 欧拉函数
  5. hadoop配置文件的作用
  6. javascript中typeof和instanceof用法的总结
  7. Check for Palindromes-FCC
  8. 我发起并创立了一个 C 语言编译器 开源项目 InnerC
  9. FMS Dev Guide学习笔记(SharedBall)
  10. swift - 解析三方 - ObjectMapper
  11. CMenu and Dialog-based applications
  12. (转)Integrating Intel® Media SDK with FFmpeg for mux/demuxing and audio encode/decode usages 1
  13. AspxGridView中行的双击事件
  14. RPC框架之Thrift分析(转)
  15. Android架构设计之插件化、组件化
  16. IOS开发 arc与非Arc代码的区别
  17. 6.BOM
  18. HDU1358 KMP(最短循环节)
  19. vue清空input file
  20. Java快车读书笔记

热门文章

  1. SEH结构
  2. Javascript模块化编程(三)require.js的用法及功能介绍
  3. eclipse spring boot项目部署
  4. javax.servlet.ServletException: java.lang.NoClassDefFoundError: javax/el/ELResolver错误解决办法
  5. FlexPaper实现文档在线浏览(附源码)
  6. 一個新的面試題目,leetcode上面可以找到shortest palindrome
  7. eclipse中copy qualified name使用方式
  8. C# 任务并行库使用小计 z
  9. Python3基本数据类型(五、字典)
  10. kahadb设计