TypeScript Map:迭代时交换的键和值

时间:2017-03-21 19:52:19

标签: javascript angular typescript

我带来了一个关于TypeScript的简化问题,我的" key"和"价值"正在切换。为了演示这个问题,我将以下地图放在文件中:

Parts.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  

...应该交换密钥和值。这不是一个大问题,但是我使用的是一些像PART_DATA示例这样设置的地图,但这是我在迭代这个地图时第一次看到这个问题(这个{{3}迭代迭代ts映射)。为清楚起见,我需要首先迭代Map,以便我可以向UI显示一些选项。

1 个答案:

答案 0 :(得分:4)

Map上forEach方法的回调按以下顺序获取参数:

function(value,key,map)

正确的语法是:

 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