ES6 中 有一个map ,里面有多个键值,我已经知道某一组的键值下标,我该如何通过下标去修改这个对应键值里面的数据
时间: 2024-02-21 16:00:55 浏览: 66
小程序根据数组下标更改数组里的值
ES6 中的 Map 对象也有类似于 C++ 中的 `std::map` 的功能。如果你已经知道了某个键值对应的下标,那么你可以使用 `Map.prototype.entries()` 方法获取 Map 对象的迭代器,然后使用 `Map.prototype.set()` 方法来修改该键值对的值。具体来说,可以使用 `Map.prototype.entries()` 方法获取 Map 对象的迭代器,然后使用迭代器的 `next()` 方法遍历 Map 中的键值对,找到指定的键值对。一旦找到了指定的键值对,就可以使用 `Map.prototype.set()` 方法来修改该键值对的值。代码示例如下:
```javascript
let myMap = new Map([
["foo", 42],
["bar", 123],
["baz", 456]
]);
// find the iterator of a specific key
let it = myMap.entries();
// traverse the map and find the specific key-value pair
let pair = it.next();
while (!pair.done) {
if (pair.value[0] === "bar") {
// modify the value of the key-value pair
myMap.set("bar", 789);
break;
}
pair = it.next();
}
// print the modified value
console.log("new value of 'bar': " + myMap.get("bar"));
```
运行结果如下:
```
new value of 'bar': 789
```
需要注意的是,如果指定的键不存在于 Map 中,`Map.prototype.get()` 方法会返回 `undefined`,此时需要特殊处理。
阅读全文