es6-认识Map

Map 对象保存键值对。任何值(对象或者原始值) 都可以作为一个键或一个值。

Map.prototype.get(key)

返回键对应的值,如果不存在,则返回undefined。

Map.prototype.set(key, value)

设置Map对象中键的值。返回该Map对象。

let map = new Map();

map.set('title', 'ECMA 2019');
map.set('year', 2019);

console.log(map.get('title')); // ECMA 2019
console.log(map.get('year')); // 2019
let map = new Map();
let key1 = {},
  key2 = {};

map.set(key1, 4).set(key2, 34);

console.log(map); // Map { {} => 4, {} => 34 }
console.log(map.get(key1)); // 4

可以向 Map 构造函数传一个数组来初始化。数组的子元素是包含键和值两个元素的数组:

let map = new Map([['name', 'wozien'], ['age', 25]]);
console.log(map); // Map { 'name' => 'wozien', 'age' => 25 }

Map.prototype.size

返回Map对象的键/值对的数量。

Map.prototype.clear()

移除Map对象的所有键/值对 。

Map.prototype.delete(key)

如果 Map 对象中存在该元素,则移除它并返回 true;否则如果该元素不存在则返回 false

Map.prototype.has(key)

返回一个布尔值,表示Map实例是否包含键对应的值。

let map = new Map();
map.set('name', 'wozien');
map.set('age', 25);

console.log(map.size); // 2
console.log(map.has('name')); // true

map.delete('name');
console.log(map.has('name'));  // false

map.clear();
console.log(map.size);  // 0

Map.prototype.entries()

返回一个新的 Iterator 对象,它按插入顺序包含了Map对象中每个元素的 [key, value] 数组

Map.prototype.forEach(callbackFn[, thisArg])

按插入顺序,为 Map对象里的每一键值对调用一次callbackFn函数。如果为forEach提供了thisArg,它将在每次回调中作为this值。

myMap.forEach(function(value, key) {
  console.log(key + " = " + value);
})
// 将会显示两个logs。 一个是 "0 = zero" 另一个是 "1 = one"

Map.prototype.keys()

返回一个新的 Iterator对象, 它按插入顺序包含了Map对象中每个元素的键 

Map.prototype.values()

返回一个新的Iterator对象,它按插入顺序包含了Map对象中每个元素的 。

Map.prototype[@@iterator]()

返回一个新的Iterator对象,它按插入顺序包含了Map对象中每个元素的 [key, value] 数组

Map可以使用for..of循环来实现迭代

var myMap = new Map();
myMap.set(0, "zero");
myMap.set(1, "one");
for (var [key, value] of myMap) {
  console.log(key + " = " + value);
}
// 将会显示两个log。一个是"0 = zero"另一个是"1 = one"

for (var key of myMap.keys()) {
  console.log(key);
}
// 将会显示两个log。 一个是 "0" 另一个是 "1"

for (var value of myMap.values()) {
  console.log(value);
}
// 将会显示两个log。 一个是 "zero" 另一个是 "one"

for (var [key, value] of myMap.entries()) {
  console.log(key + " = " + value);
}
// 将会显示两个log。 一个是 "0 = zero" 另一个是 "1 = one"
发布了51 篇原创文章 · 获赞 0 · 访问量 2913

猜你喜欢

转载自blog.csdn.net/Spearmint_/article/details/102420703
今日推荐