📅  最后修改于: 2023-12-03 15:14:53.877000             🧑  作者: Mango
ES6中提供了映射(Map)数据类型,可以用来存储键值对。和对象相比,映射的键可以是任意类型的,而且有更丰富的API。本文将介绍如何使用映射来使用索引。
创建映射可以使用构造函数或字面量方式。
构造函数:
const myMap = new Map();
字面量:
const myMap = new Map([
['a', 1],
['b', 2]
]);
以上代码创建了一个包含两个键值对的映射。
使用set()
方法可以为映射设置键值对。
myMap.set('c', 3);
以上代码设置了一个键为c
,值为3
的键值对。
使用get()
方法可以获取映射中指定键对应的值。
const value = myMap.get('b'); // 2
以上代码获取了键为b
的值,值为2
。
使用delete()
方法可以删除映射中指定键值对。
myMap.delete('b');
以上代码删除了键为b
的键值对。
使用entries()
方法可以遍历映射中的所有键值对,并返回一个迭代器对象。
for(const [key, value] of myMap.entries()) {
console.log(key, value);
}
以上代码遍历映射中的所有键值对,并将每个键和值打印到控制台。
虽然映射不支持使用索引进行直接访问,但是可以使用数组和对象来模拟索引的行为。
使用数组:
const myArray = [...myMap.values()];
const valueAtIndex = myArray[1]; // 3
以上代码将映射中的所有值转换为一个数组,并使用数组下表访问第二个值。
使用对象:
const myObj = Object.fromEntries(myMap.entries());
const valueByKey = myObj['c']; // 3
以上代码将映射转换为对象,并使用对象的属性来访问键c
对应的值。
使用上述技巧,我们可以在不影响映射本身的情况下,模拟出索引的行为。
本文介绍了如何创建映射、设置键值对、获取、删除和遍历映射,以及使用数组和对象来模拟索引的行为。映射是一种非常有用的数据类型,可以在很多场景中使用。