如何在 TypeScript 中迭代 Map
使用 forEach()
方法在 TypeScript 中迭代 Map。 forEach
方法采用一个函数,该函数为 Map 中的每个键/值对调用。 该函数在每次迭代时都会传递值、键和 Map 对象。
const map1 = new Map<string, string | number>([
['name', 'Tom'],
['country', 'Germany'],
['age', 30],
]);
// ✅ 使用 forEach
map1.forEach((value, key) => {
console.log(value, key);
});
// ✅ 使用 for...of
for (const [key, value] of map1) {
console.log(key, value);
}
// ✅ 遍历 Map 的键
for (const key of map1.keys()) {
console.log(key); // 👉️ name, country, age
}
// ✅ 迭代 Map 的值
for (const value of map1.values()) {
console.log(value); // 👉️ Tom, Germany, 30
}
注意
,我们在声明 Map 时使用了泛型来键入 Map。 我们将 Map 的键设置为字符串类型,并将其值设置为字符串或数字类型。
我们使用 Map.forEach
方法来迭代 Map 中的键/值对。
我们传递给该方法的函数使用以下 3 个参数调用:
-
当前迭代的
value
-
当前迭代的
key
-
正在迭代的
Map
对象
forEach 方法返回 undefined。
在我们的其他示例中,我们使用了 for...of
循环。
循环允许我们迭代可迭代对象,如 Maps、Sets 和数组。
我们在声明键和值变量时使用了解构赋值。
const [key, value] = ['Tom', 'Germany'];
console.log(key); // 👉️ Tom
console.log(value); // 👉️ Germany
如果我们必须使用 break 关键字过早退出循环,那么 for...of
循环可能是我们的首选方法。 forEach
方法不支持使用 break 关键字。
for...of
循环仅迭代对象自身的属性,而 for...in 循环也迭代继承的属性。
在我们的第 3 和第 4 个示例中,我们使用 Map.keys() 和 Map.values() 方法来获取包含 Map 的键和值的可迭代对象。
注意
, Map.keys() 和 Map.values() 方法的返回值是数组,它们是迭代器对象。
const map1 = new Map<string, string | number>([
['name', 'Tom'],
['country', 'Germany'],
['age', 30],
]);
// 👇️ const keys: IterableIterator<string>
const keys = map1.keys();
// 👇️ const values: IterableIterator<string | number>
const values = map1.values();
如果要将值转换为数组,例如 要使用 forEach
方法,我们可以使用 Array.from
方法。
const map1 = new Map<string, string | number>([
['name', 'Tom'],
['country', 'Germany'],
['age', 30],
]);
// 👇️ const keys: string[]
const keys = Array.from(map1.keys());
// 👇️ const values: (string | number)[]
const values = Array.from(map1.values());
另一种方法是使用扩展运算符 (...)
将迭代器对象中的值解包到一个数组中。
const map1 = new Map<string, string | number>([
['name', 'Tom'],
['country', 'Germany'],
['age', 30],
]);
// 👇️ const keys: string[]
const keys = [...map1.keys()];
// 👇️ const values: (string | number)[]
const values = [...map1.values()];
最后两个示例实现了相同的目标。 它们都将迭代器对象转换为数组。
我们现在可以使用 forEach
方法迭代数组,以及任何其他数组内置方法。
相关文章
在 AngularJs 中设置 Select From Typescript 的默认选项值
发布时间:2023/04/14 浏览次数:78 分类:Angular
-
本教程提供了在 AngularJs 中从 TypeScript 中设置 HTML 标记选择的默认选项的解释性解决方案。
在 Angular 中使用 TypeScript 的 getElementById 替换
发布时间:2023/04/14 浏览次数:153 分类:Angular
-
本教程指南提供了有关使用 TypeScript 在 Angular 中替换 document.getElementById 的简要说明。这也提供了在 Angular 中 getElementById 的最佳方法。
在 TypeScript 中使用 try..catch..finally 处理异常
发布时间:2023/03/19 浏览次数:181 分类:TypeScript
-
本文详细介绍了如何在 TypeScript 中使用 try..catch..finally 进行异常处理,并附有示例。
在 TypeScript 中使用 declare 关键字
发布时间:2023/03/19 浏览次数:97 分类:TypeScript
-
本教程指南通过特定的实现和编码示例深入了解了 TypeScript 中 declare 关键字的用途。
在 TypeScript 中 get 和 set
发布时间:2023/03/19 浏览次数:172 分类:TypeScript
-
本篇文章演示了类的 get 和 set 属性以及如何在 TypeScript 中实现它。
在 TypeScript 中格式化日期和时间
发布时间:2023/03/19 浏览次数:161 分类:TypeScript
-
本教程介绍内置对象 Date() 并讨论在 Typescript 中获取、设置和格式化日期和时间的各种方法。
在 TypeScript 中返回一个 Promise
发布时间:2023/03/19 浏览次数:182 分类:TypeScript
-
本教程讨论如何在 TypeScript 中返回正确的 Promise。这将提供 TypeScript 中 Returns Promise 的完整编码示例,并完整演示每个步骤。
在 TypeScript 中定义函数回调的类型
发布时间:2023/03/19 浏览次数:221 分类:TypeScript
-
本教程说明了在 TypeScript 中为函数回调定义类型的解决方案。为了程序员的方便和方便,实施了不同的编码实践指南。
在 TypeScript 中把 JSON 对象转换为一个类
发布时间:2023/03/19 浏览次数:110 分类:TypeScript
-
本教程演示了如何将 JSON 对象转换为 TypeScript 中的类。