for foreach遍历 map key 和value可以交换吗
时间: 2023-11-12 22:50:25 浏览: 285
在 JavaScript 中,`forEach` 方法无法直接交换 Map 中的键和值。`forEach` 方法会按照插入顺序依次迭代 Map 的键值对,并将键和值作为参数传递给回调函数。
如果你想要交换 Map 中的键和值,可以使用 `for...of` 循环来遍历 Map 的键值对,并在循环中交换键和值的位置。
以下是一个示例:
```javascript
const dictionary = new Map();
dictionary.set('key1', 'value1');
dictionary.set('key2', 'value2');
dictionary.set('key3', 'value3');
const invertedDictionary = new Map();
for (const [key, value] of dictionary) {
invertedDictionary.set(value, key);
}
console.log(invertedDictionary);
```
在上述示例中,我们创建了一个 Map 对象 `dictionary`,然后使用 `for...of` 循环遍历该 Map 对象的键值对。在循环中,我们交换了键和值的位置,并将它们添加到另一个 Map 对象 `invertedDictionary` 中。最后,我们打印输出了 `invertedDictionary`。
请注意,通过交换键和值,可能会导致一些值在原始 Map 中不是唯一的情况下丢失信息,因为在 Map 中,键必须是唯一的。因此,在交换键和值时,请确保键和值在原始 Map 中是唯一的,以避免丢失数据。
阅读全文