es6 键值map 转变为数组后,如何变回 map
时间: 2024-01-09 19:10:35 浏览: 111
在 ES6 中,可以使用 `Map` 对象的构造函数来将一个数组转换为 `Map` 对象。具体来说,将数组作为 `Map` 构造函数的参数,即可将数组转换为 `Map` 对象。例如:
```javascript
let myMap = new Map([
["foo", 42],
["bar", 123],
["baz", 456]
]);
// convert the map to an array
let arr = Array.from(myMap);
// convert the array back to a map
let newMap = new Map(arr);
console.log(newMap.get("foo")); // output: 42
console.log(newMap.get("bar")); // output: 123
console.log(newMap.get("baz")); // output: 456
```
在上述例子中,首先创建了一个 `Map` 对象 `myMap`,然后将该对象转换为数组 `arr`。接着,使用 `Map` 构造函数将数组 `arr` 转换为新的 `Map` 对象 `newMap`。最后,使用 `newMap.get()` 方法来获取 `newMap` 中特定键的值,以验证转换是否成功。需要注意的是,该转换的过程中,如果数组中存在重复的键,后面的键值对会覆盖之前的键值对。
另外,需要注意的是,在将数组转换回 `Map` 对象时,数组中的每个元素必须是一个长度为 2 的子数组,第一个元素为键,第二个元素为值。如果数组中存在其他长度的子数组或普通元素,则会抛出错误。
阅读全文