在 JavaScript 中反转 ES6 Map 的顺序
JavaScript 中要反转 Map
对象的顺序:
- 使用
Array.from()
方法将 Map 转换为数组。 - 调用
reverse()
方法来反转数组。 - 将结果传递给
Map()
构造函数。 - 新 Map 将包含相反顺序的元素。
const map1 = new Map([
['one', 1],
['two', 2],
]);
const reversed = new Map(Array.from(map1).reverse());
console.log(reversed); // 👉️ {'two' => 2, 'one' => 1}
第一步是使用 Array.from
方法将 Map 转换为键值对数组。
const map1 = new Map([
['one', 1],
['two', 2],
]);
const arr = Array.from(map1);
console.log(arr); // 👉️ [['one', 1], ['two', 2]]
每个子数组中的第一个元素是键,第二个元素是值。
下一步是使用 Array.reverse
方法来反转数组。
const map1 = new Map([
['one', 1],
['two', 2],
]);
const arr = Array.from(map1);
console.log(arr.reverse()); // 👉️ [['two', 2], ['one', 1] ]
最后一步是将反转数组作为参数传递给 Map()
构造函数。
Map()
构造函数接受一个元素为键值对的可迭代对象,并使用它们创建一个新的 Map。
新 Map 将以相反的顺序包含原始 Map 的元素。
将 Map 转换为数组的另一种方法是使用扩展语法 ...
。
const map1 = new Map([
['one', 1],
['two', 2],
]);
const reversed = new Map([...map1].reverse());
console.log(reversed); // 👉️ {'two' => 2, 'one' => 1}
注意
:我们使用扩展语法...
将 Map 的键值对解包到一个数组中。
这实现了与 Array.from
方法相同的目标。
在一些罕见的情况下,扩展语法
...
方法不能很好地与 TypeScript 配合使用。 如果遇到这些,请改用Array.from
。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布,任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站。本站所有源码与软件均为原作者提供,仅供学习和研究使用。如您对本站的相关版权有任何异议,或者认为侵犯了您的合法权益,请及时通知我们处理。