es6 中 map 创建的数据,如何根据下标,进行删除对应下标的键值对。
时间: 2024-02-24 14:58:24 浏览: 86
在ES6中,Map对象没有提供直接删除某个键值对的方法,但是可以通过以下两种方式实现:
1. 使用 Map.prototype.entries() 方法将 Map 对象转为一个数组,然后使用 Array.prototype.splice() 方法删除指定下标的元素,最后再将数组转回 Map 对象。
```javascript
let map = new Map([
['key1', 'value1'],
['key2', 'value2'],
['key3', 'value3']
]);
let arr = [...map.entries()]; // 将 Map 对象转换为数组
arr.splice(1, 1); // 删除下标为 1 的元素
map = new Map(arr); // 将数组转换为 Map 对象
```
2. 使用 Map.prototype.forEach() 方法遍历 Map 对象,找到指定下标的键值对,然后使用 Map.prototype.delete() 方法删除该键值对。
```javascript
let map = new Map([
['key1', 'value1'],
['key2', 'value2'],
['key3', 'value3']
]);
let count = 0;
map.forEach((value, key) => {
if (count === 1) {
map.delete(key); // 删除下标为 1 的元素
}
count++;
});
```
以上两种方式都可以删除指定下标的键值对,根据实际情况选择即可。
阅读全文