JavaScript的默认对象表示方法{}可以视为其他语言中的Map或者Dictionary的数据结构,即一组键值对。
但是JavaScript的对象有个小问题,就是键必须是字符串,但实际上Number或者其他数据类型作为键也是非常合理的。
Map是一组键值对的结构,具有极快的查找速度。
var m = new Map([[‘Michael‘,95],[‘Bob‘,75],[‘Tracy‘,85]]); m.get(‘Michael‘);//95
初始化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‘);//67 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‘);//88
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}
时间: 2024-12-26 15:51:29