目录
Iterate over a Map in Reverse Order in JavaScript
以相反的顺序遍历 Map
Map
以相反的顺序遍历 a :
- 使用
Array.from()
方法将 转换Map
为数组。 - 使用
reverse()
方法反转数组。 - 调用该
forEach
方法以遍历反转数组。
索引.js
const map1 = new Map([ ['one', 1], ['two', 2], ]); // 👇️ [['two', 2], ['one', 1]] const reversedArr = Array.from(map1).reverse(); reversedArr.forEach(([key, value]) => { console.log(key, value); // 👉️ two 2, one 1 });
第一步是将
Map转换
为数组。
索引.js
const map1 = new Map([ ['one', 1], ['two', 2], ]); // 👇️ [['one', 1], ['two', 2]] const arr = Array.from(map1);
我们使用
Array.reverse
方法来反转数组。
索引.js
const map1 = new Map([ ['one', 1], ['two', 2], ]); // 👇️ [['one', 1], ['two', 2]] const arr = Array.from(map1); // 👇️ [['two', 2], ['one', 1]] const reversed = arr.reverse();
该
reverse()
方法就地反转数组并返回结果。然后我们使用
Array.forEach
方法迭代反向数组。
我们传递给该forEach
方法的函数将随数组的每个元素一起调用。
我们使用
解构赋值
来分配key
和value
变量。
索引.js
const [key, value] = ['one', 1]; console.log(key); // 👉️ "one" console.log(value); // 👉️ 1
您还可以使用
展开语法 (…)
将 转换Map
为数组。
索引.js
const map1 = new Map([ ['one', 1], ['two', 2], ]); // 👇️ [['two', 2], ['one', 1]] const reversedArr = [...map1].reverse(); reversedArr.forEach(([key, value]) => { console.log(key, value); // 👉️ two 2, one 1 });
此代码示例实现了相同的结果,但是这次我们使用展开语法 (…) 将 的键值对解包Map
到一个数组中。
在极少数情况下,扩展语法 (…) 在使用 TypeScript 时效果不佳。使用时不会出现此问题
Array.from
。Iterate over a Set in Reverse Order in JavaScript #
To iterate over a Set
in reverse order:
- Use the
Array.from()
method to convert theSet
to an array. - Use the
reverse()
method to reverse the array. - Call the
forEach
method to iterate over the reversed array.
index.js
const set1 = new Set(['a', 'b', 'c']); Array.from(set1) .reverse() .forEach(element => { console.log(element); // 👉️ c, b, a });
The first step is to convert the
Set
object to an array.
Next, we use the
Array.reverse
method to reverse the array.
The
reverse()
method reverses the array in place and returns the result.Then, we can use the
Array.forEach
method to iterate over the reversed array.
The function we passed to the forEach
method gets called with each element of
the array.
另一种方法是使用
扩展语法 (…)
将 转换Set
为数组。
索引.js
const set1 = new Set(['a', 'b', 'c']); [...set1].reverse().forEach(element => { console.log(element); // 👉️ c, b, a });
此代码示例实现了相同的结果,但是,这次我们使用扩展语法 (…) 将 的值解压缩Set
到一个数组中。
该方法的替代forEach
方法是使用
for…of
循环遍历反转数组。
索引.js
const set1 = new Set(['a', 'b', 'c']); const reversedArr = [...set1].reverse(); for (const element of reversedArr) { console.log(element); // c, b, a }
循环用于迭代可for...of
迭代对象,例如数组、字符串、Sets
、Maps
等。