我提出了一个关于 TypeScript 的简化问题,其中我的“键”和“值”正在切换。为了演示这个问题,我有以下 map ,我将其单独存储在文件中:
零件.ts
export const PART_DATA : Map<string, string> = new Map(
[
[ 'PI', 'Piping' ],
[ 'TC', 'Truck Components' ],
[ 'BE', 'Brake Equipment' ]
]);
...我们将调用我实现此 Map 的其他文件 ProcessParts.ts,它看起来像这样:
import {Component, OnInit, NgModule} from '@angular/core';
import {PART_DATA} from './Parts';
export class ProcessParts {
ngOnInit(){
PART_DATA.forEach((key: string, value: string) => {
console.log("here is " + key + ', ' + value);
});
}
}
...我们的输出将开始如下所示:
here is Piping, PI
... 应该交换键和值的时间。这不是一个大问题,但我正在使用像这样设置的几个 map PART_DATA
示例,但这是我第一次在遍历此 map 时看到此问题(这个 post在迭代 ts map 上迭代)。为清楚起见,我需要首先遍历 map ,以便我可以向 UI 显示一些选项。
最佳答案
Map 上的 forEach 方法中的回调按以下顺序接受参数:
函数(值,键,映射)
正确的语法是:
PART_DATA.forEach((value: string, key: string) => {
console.log("here is " + key + ', ' + value);
});
参见 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map/forEach
关于javascript - typescript map : key and value swapped on iteration,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42936918/