Map对象
Map 对象保存键值对。任何值(对象或者原始值) 都可以作为一个键或一个值。(甚至可以是NaN,虽然NaN连自己都不相等,但是NaN作为Map的键来说是没有区别的)
Maps 和 Objects 的区别:
map方法属性
- Map.prototype.constructor 返回一个函数,它创建了实例的原型。默认是map函数。会自动隐藏。
- Map.prototype.size 返回Map对象的键/值对的数量
map方法属性
Map.prototype.clear()
移除Map对象的所有键/值对 。Map.prototype.delete(key)
如果 Map 对象中存在该元素,则移除它并返回 true;否则如果该元素不存在则返回 false。随后调用Map.prototype.has(key) 将返回 false 。Map.prototype.forEach(callback, thisArg)
按插入顺序,为 Map对象里的每一键值对调用一次callbackFn函数。如果为forEach提供了thisArg,它将在每次回调中作为this值。Map.prototype.has(key)
返回一个布尔值,表示Map实例是否包含键对应的值。Map.prototype.set(key, value)
设置Map对象中键的值。返回该Map对象。Map.prototype.entrise()
返回一个新的 Iterator 对象,它按插入顺序包含了Map对象中每个元素的 [key, value] 数组。Map.prototype.keys()
返回一个新的 Iterator对象, 它按插入顺序包含了Map对象中每个元素的键 。Map.prototype.values()
返回一个新的Iterator对象,它按插入顺序包含了Map对象中每个元素的值 。
Map与数组的关系
let kvArray = [["key1", "value1"], ["key2", "value2"]];
// 使用常规的Map构造函数可以将一个二维键值对数组转换成一个Map对象
let myMap = new Map(kvArray);
myMap.get("key1"); // 返回值为 "value1"
// 使用Array.from函数可以将一个Map对象转换成一个二维键值对数组
console.log(Array.from(myMap)); // 输出和kvArray相同的数组
// 更简洁的方法来做如上同样的事情,使用展开运算符
console.log([...myMap]);
// 或者在键或者值的迭代器上使用Array.from,进而得到只含有键或者值的数组
console.log(Array.from(myMap.keys())); // 输出 ["key1", "key2"]
Set对象
Set 对象允许你存储任何类型的唯一值,无论是原始值或者是对象引用。
Set 中的特殊值
- +0 与 -0 在存储判断唯一性的时候是恒等的,所以不重复;
- undefined 与 undefined 是恒等的,所以不重复;
- NaN 与 NaN 是不恒等的,但是在 Set 中只能存一个,不重复。
Set属性
- Set.prototype.constructor 返回一个函数,它创建了实例的原型。默认是map函数。会自动隐藏。
- Set.prototype.size 返回Map对象的键/值对的数量
Set方法
Set.prototype.clear()
移除Set对象内的所有元素。 。Set.prototype.delete(key)
如果 Map 对象中存在该元素,则移除它并返回 true;否则如果该元素不存在则返回 false。随后调用Map.prototype.has(key) 将返回 false 。Set.prototype.forEach(callback, thisArg)
按插入顺序,为 Set对象里的每一键值对调用一次callbackFn函数。如果为forEach提供了thisArg,它将在每次回调中作为this值。Set.prototype.has(key)
返回一个布尔值,表示Set实例是否包含键对应的值。Set.prototype.add(value)
设置Set对象中的值。返回该Set对象。Set.prototype.entrise()
返回一个新的 Iterator 对象,它按插入顺序包含了Set对象中每个元素的 [key, value] 数组。Set.prototype.keys()
返回一个新的 Iterator对象, 它按插入顺序包含了Set对象中每个元素的键 。Set.prototype.values()
返回一个新的Iterator对象,它按插入顺序包含了Map对象中每个元素的值 。
网友评论