ECMAScript 2018 中的 Map 对象是一种新的数据结构,用于存储键值对。与 Object 对象不同,Map 对象的键可以是任何数据类型,包括对象、数组、函数等,而且 Map 对象中的键值对是按照插入顺序保存的。
创建 Map 对象
创建 Map 对象非常简单,可以使用 new 关键字和 Map() 构造函数,如下所示:
const myMap = new Map();
这将创建一个空的 Map 对象,可以向其中添加键值对。
添加键值对
Map 对象的 set() 方法用于向中添加一个键值对,如下所示:
const myMap = new Map(); myMap.set('name', 'John'); myMap.set('age', 30); myMap.set({ country: 'USA' }, 'United States');
这将创建一个含有三个键值对的 Map 对象。第一个键是字符串 'name',对应的值是字符串 'John';第二个键是字符串 'age',对应的值是数值 30;第三个键是一个对象,对应的值是字符串 'United States'。
获取值
Map 对象的 get() 方法用于获取指定键的值,如下所示:
const myMap = new Map(); myMap.set('name', 'John'); myMap.set('age', 30); const name = myMap.get('name'); // 'John' const age = myMap.get('age'); // 30
这将获取键为 'name' 和 'age' 的对应值。
删除键值对
Map 对象的 delete() 方法用于删除指定键值对,如下所示:
const myMap = new Map(); myMap.set('name', 'John'); myMap.set('age', 30); myMap.delete('name');
这将删除键为 'name' 的键值对,Map 对象中只剩下键为 'age' 的键值对。
检查 Map 对象是否包含指定键
Map 对象的 has() 方法用于检查是否包含指定键,如下所示:
const myMap = new Map(); myMap.set('name', 'John'); myMap.set('age', 30); const hasName = myMap.has('name'); // true const hasCountry = myMap.has({ country: 'USA' }); // false
这将检查 Map 对象中是否包含键为 'name' 和一个新的对象 { country: 'USA' }。
获取 Map 对象中的所有键
Map 对象的 keys() 方法用于获取 Map 对象中的所有键,如下所示:
const myMap = new Map(); myMap.set('name', 'John'); myMap.set('age', 30); const keys = myMap.keys(); // MapIterator { 'name', 'age' }
这将获取 Map 对象中所有键的迭代器对象。
获取 Map 对象中的所有值
Map 对象的 values() 方法用于获取 Map 对象中的所有值,如下所示:
const myMap = new Map(); myMap.set('name', 'John'); myMap.set('age', 30); const values = myMap.values(); // MapIterator { 'John', 30 }
这将获取 Map 对象中所有值的迭代器对象。
获取 Map 对象中的所有键值对
Map 对象的 entries() 方法用于获取 Map 对象中的所有键值对,如下所示:
const myMap = new Map(); myMap.set('name', 'John'); myMap.set('age', 30); const entries = myMap.entries(); // MapIterator { [ 'name', 'John' ], [ 'age', 30 ] }
这将获取 Map 对象中所有键值对的迭代器对象。
总结
ECMAScript 2018 中的 Map 对象是一种新的数据结构,用于存储键值对。与 Object 对象不同,Map 对象的键可以是任何数据类型,包括对象、数组、函数等,而且 Map 对象中的键值对是按照插入顺序保存的。
在使用 Map 对象时,可以使用 set() 方法添加键值对,使用 get() 方法获取指定键的值,使用 delete() 方法删除指定键值对,使用 has() 方法检查是否包含指定键,以及使用 keys()、values()、entries() 方法获取 Map 对象中的键、值、键值对。
以上这些方法在实际项目中都有广泛的应用,熟练掌握 Map 对象的使用方法有助于提升前端开发的效率和代码的质量。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64e98135f6b2d6eab34c6145