javascript - typescript map : key and value swapped on iteration

标签 javascript angular typescript

我提出了一个关于 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/

相关文章:

javascript - Typescript:访问装饰器声明中类的其他函数/属性

javascript - 嵌套 JSON 数组对象代码不起作用

javascript - 谷歌浏览器不尊重缓存控制中的最大年龄

Angular - 流式传输多个 HTTP 调用 2 per 2

typescript - d3.js 和 TypeScript 编译错误

javascript - 在 TypeScript 中凝胶化一个类的所有模型属性

javascript - 被设计问题困扰

javascript - Intl.DateTimeFormat() 返回不正确的 UTC 日期

css - Angular + ng bootstrap 模式没有出现

javascript - 实例化子对象(对象内的对象)Angular 2