JavaScript Map和Set
2019-07-28 本文已影响0人
52JackWang
- 注意:Map和Set是ES6标准新增的数据类型
Map:增强版的Object
-
Object的属性名只能为string,Map的属性名可以是数字和其他对象。
-
一个key只能对应一个value,多次对一个key设置value,后值刷新前值。
// Map demo1: var m = new Map([['Michael', 95], ['Bob', 75], ['Tracy', 85]]); m.get('Michael'); // 95 // Map demo2: 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
Set:增强版的Array
-
Set是一组不重复元素的集合,在Set中,没有重复的元素!
-
要创建一个Set,需要提供一个Array作为输入,或者直接创建一个空Set:
var s1 = new Set(); // 空Set var s2 = new Set([1, 2, 3, 3,, '3']); // Set{1, 2, 3, '3'},重复元素被自动过滤 s2.add(0); // Set{1, 2, 3, '3', 0} s2.add(1); // Set{1, 2, 3, '3', 0},重复元素被自动过滤 s2.has(2); // true s2.delete('3'); // Set{1, 2, 3, 0}