JavaScript 中的 Map使用指南 |
||||||||||||||||||
JavaScript 中的 Map 完全指南引言在 JavaScript 中, 1. 创建 使用 const map = new Map(); 也可以在创建时初始化 const map = new Map([
["name", "Alice"],
["age", 25]
]);
console.log(map); // 输出 Map(2) { 'name' => 'Alice', 'age' => 25 }2. 在学习
通过对比可以看出, 3. 3.1 用于向 map.set("name", "Bob");
map.set("age", 30);
console.log(map); // 输出 Map(2) { 'name' => 'Bob', 'age' => 30 }3.2 获取指定键的值,如果键不存在,返回 console.log(map.get("name")); // 输出 'Bob'
console.log(map.get("gender")); // 输出 undefined3.3 检查 console.log(map.has("name")); // 输出 true
console.log(map.has("gender")); // 输出 false3.4 删除指定的键值对,返回 map.delete("age");
console.log(map); // 输出 Map(1) { 'name' => 'Bob' }3.5 清空 map.clear();
console.log(map); // 输出 Map(0) {}3.6 返回 map.set("name", "Alice");
map.set("age", 25);
console.log(map.size); // 输出 24.
4.1 遍历 map.forEach((value, key) => {
console.log(`${key}: ${value}`);
});
// 输出:
// name: Alice
// age: 254.2 返回 for (let key of map.keys()) {
console.log(key);
}
// 输出:
// name
// age4.3 返回 for (let value of map.values()) {
console.log(value);
}
// 输出:
// Alice
// 254.4 返回 for (let entry of map.entries()) {
console.log(entry);
}
// 输出:
// [ 'name', 'Alice' ]
// [ 'age', 25 ]4.5 使用 可以直接用 for (let [key, value] of map) {
console.log(`${key}: ${value}`);
}
// 输出:
// name: Alice
// age: 255.
需要使用非字符串类型的键:对象的键只能是字符串或符号,而 const objKey = { id: 1 };
const map = new Map();
map.set(objKey, "Object as key");
console.log(map.get(objKey)); // 输出 'Object as key'
6. 使用 我们可以通过一个例子来比较使用 方法 1:不用 function countLettersWithObject(str) {
const letterCounts = {}; // 用对象存储字母出现的次数
for (let letter of str) {
if (letterCounts[letter]) {
letterCounts[letter]++;
} else {
letterCounts[letter] = 1;
}
}
return letterCounts;
}
const result = countLettersWithObject("hello world");
console.log(result); // 输出: { h: 1, e: 1, l: 3, o: 2, w: 1, r: 1, d: 1 }方法 2:使用 function countLettersWithMap(str) {
const letterCounts = new Map(); // 用 Map 存储字母出现的次数
for (let letter of str) {
if (letterCounts.has(letter)) {
letterCounts.set(letter, letterCounts.get(letter) + 1);
} else {
letterCounts.set(letter, 1);
}
}
return letterCounts;
}
const resultMap = countLettersWithMap("hello world");
console.log(resultMap); // 输出: Map(7) { 'h' => 1, 'e' => 1, 'l' => 3, 'o' => 2, 'w' => 1, 'r' => 1, 'd' => 1 }7.
使用场景
const weakMap = new WeakMap();
let obj = { id: 1 };
weakMap.set(obj, "some value");
console.log(weakMap.get(obj)); // 输出 'some value'
obj = null; // 删除对象的其他引用
// 在此之后,obj 被垃圾回收,WeakMap 中的键值对也会被清除总结
到此这篇关于JavaScript 中的 Map使用指南的文章就介绍到这了,更多相关js map使用内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持! |