两种数据结构Map和Set
Map的数据结构:一组具有键值对的结构
eg:
//写法1:
var m=new Map([['Michael',95],['Bob',75],['Tracy',85]]);
//写法2
var scoreList = [
{ name: 'Tim', age: 18, score: 90 },
{ name: 'Tony', age: 17, score: 95 },
{ name: 'Kevin', age: 18, score: 91 }
];
如上为map的数据结构用二维数组表示的键值对
map结构常用方法:
1
map.set(key,value) ---->给map添加键值对元素,返回值类型为空类型
var m=new Map();//添加空的Map
m.set('Adam',67);//添加新的key-value
m.set("Bob",59);
console.log(m) // 结果 { 'Adam' => 67, 'Bob' => 59 }
2
map.has(key)--->检查map是否含有key,返回值类型为boolean类型
var m=new Map();//添加空的Map
m.set('Adam',67);//添加新的key-value
m.set("Bob",59);
console.log(m.has("Adam"))//true
3
map.delete(key)---->通过key删除元素
1.map.set(key,value) ---->给map添加键值对元素,返回值类型为空类型
var m=new Map();//添加空的Map
m.set('Adam',67);//添加新的key-value
m.set("Bob",59);
m.delete("Bob")
console.log(m.has("Bob"));//undefined
需要注意的:
由于一个key只能对应一个value,所以,多次对一个key放入value,后面的值会把前面的值冲掉:
var m = new Map();
m.set('Adam', 67);
m.set('Adam', 88);
console.log(m.get('Adam')); // 88
Set的数据结构:Set和Map类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在Set中,没有重复的key。
用代码表示Set的数据结构:
var set={1,2,3,4}
要创建一个Set,需要提供一个Array作为输入,或者直接创建一个空Set:
var s1 = new Set(); // 空Set
var s2 = new Set([1, 2, 3]);
重复元素在Set中自动被过滤:
var s=new Set([1,2,3,3,'3']);
console.log(s);//{1,2,3,"3"}
Set的常用方法
1.Set.add(key);---->添加元素,参数为key,可以重复添加,但不会有效果:
var set=new Set([1,2,3]);//初始化Set
s.add(4);
s.add(4);
console.log(s); // Set {1, 2, 3, 4}
2.Set.has(key)—>判断Set中是否有key(元素)
var s=new Set([1,2,3]);
console.log(s.has(4));//false
3.Set.delete(key)—>删除对应的key
var s=new Set([1,2,3]);
s.delete(3);
console.log(s);//{1,2}