TypeScript映射:键和值在迭代时交换

kmk*_*09k 3 javascript typescript angular

我有一个关于TypeScript的简化问题,其中“键”和“值”正在切换。为了演示这个问题,我有以下地图,我自己将其存储在文件中:

零件

export const PART_DATA : Map<string, string> = new Map( 
[
    [ 'PI',  'Piping' ],
    [ 'TC',  'Truck Components' ],
    [ 'BE',  'Brake Equipment' ]
]);
Run Code Online (Sandbox Code Playgroud)

...,我们将在实现此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);
        });
      }
  }
Run Code Online (Sandbox Code Playgroud)

...我们的输出将开始如下所示:

here is Piping, PI  
Run Code Online (Sandbox Code Playgroud)

...何时应交换键和值。这是不是一个巨大的问题,但我用了几个映射设置了这样的PART_DATA例子,但这是我第一次看到这个问题,当我循环访问该地图(这个这个岗位上迭代迭代一个TS地图) 。为了清楚起见,我首先需要遍历Map,以便可以向UI显示一些选项。

小智 5

Map的forEach方法中的回调采用以下顺序的参数:

function(value,key,map)

正确的语法为:

 PART_DATA.forEach((value: string, key: string) => {
          console.log("here is " + key + ', ' + value);
        });
Run Code Online (Sandbox Code Playgroud)

参见https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Map/forEach