在 ECMAScript (ES6) 中,Map 对象是一种用于存储键值对的数据结构。与普通对象不同,Map 的键可以是任意类型,并且保持插入顺序。下面是几种创建 Map 对象的方法:
new Map() 构造函数这是最基本也是最常用的方法来创建一个 Map 对象。
// 创建一个空的 Map
const myMap = new Map();
// 添加键值对
myMap.set('name', 'Alice');
myMap.set('age', 25);
myMap.set(1, 'one'); // 键可以是任意类型
// 查看 Map 的大小
console.log(myMap.size); // 输出: 3
// 获取值
console.log(myMap.get('name')); // 输出: Alice
console.log(myMap.get(1)); // 输出: one
// 检查是否包含某个键
console.log(myMap.has('age')); // 输出: true
// 删除某个键值对
myMap.delete('age');
// 遍历 Map
myMap.forEach((value, key) => {
console.log(`${key}: ${value}`);
});
// 输出:
// name: Alice
// 1: one
虽然 ES6 引入了 Map,但直到 ES2019 才支持使用字面量语法 {} 来创建 Map。不过,这种方式在某些环境下可能不被支持,因此建议优先使用 new Map()。
// 创建一个 Map 并初始化键值对(ES2019+)
const myMap = new Map([
['name', 'Bob'],
['age', 30],
[true, 'boolean']
]);
console.log(myMap.get('name')); // 输出: Bob
你可以将现有的数组或其他可迭代对象转换为 Map。
// 从数组创建 Map
const entries = [
['fruit', 'apple'],
['vegetable', 'carrot'],
['grain', 'rice']
];
const mapFromArray = new Map(entries);
console.log(mapFromArray.get('fruit')); // 输出: apple
// 从对象创建 Map(注意:对象的键会被转换为字符串)
const obj = {
name: 'Charlie',
age: 28
};
const mapFromObject = new Map(Object.entries(obj));
console.log(mapFromObject.get('name')); // 输出: Charlie
如果你需要频繁创建 Map,可以定义一个工厂函数来简化操作。
function createMap(initialEntries = []) {
return new Map(initialEntries);
}
const userMap = createMap([
['username', 'david'],
['role', 'admin']
]);
console.log(userMap.get('username')); // 输出: david
Map 方法总结new Map():创建一个新的空 Map。set(key, value):添加或更新键值对。get(key):根据键获取对应的值。has(key):检查是否包含某个键。delete(key):删除某个键值对。clear():清空所有键值对。size:返回 Map 中键值对的数量。forEach(callbackFn[, thisArg]):遍历 Map 中的所有键值对。Map 的键可以是任意类型,包括对象、函数、基本类型等。Map 会按照插入顺序迭代键值对。希望这些信息能帮助你更好地理解和使用 ECMAScript 中的 Map 对象!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。