如何从Typescript映射中投射JSON对象?

时间:2019-01-26 00:01:51

标签: typescript dictionary angular7 anonymous-types

所以我在组件中有一个Map。

 reconciled = new Map<number, boolean>();

我订阅了带有粗箭头功能的更改,并在其“更改”事件上连接了几个重要的复选框:

changed = (tranId: number, checked: boolean) => this.reconciled.set(tranId, checked);

我喜欢将它连接到一个事件,如果该键存在数字,则它将值更新为true(如果存在),否则添加一个新条目。但是我想将它作为JSON传递给服务,以替换我想要的集合名称。到目前为止,我有这个:

const mp: any[] = [];
this.reconciled.forEach(x => mp.push({transactionID: x, reconciled: x}));

显然,这是两次获得相同的布尔值。但是我看不到传入的映射对象的“键”。我更习惯于C#,在这里我可以使用字典,然后从中选择想要的任何内容。我只是不知道语法,但是基本上我想要一个字典的行为,但是然后能够匿名地描述我想在Submit方法上调用它们的键和值。

1 个答案:

答案 0 :(得分:0)

Map.prototype.forEach()进行回调,并使用three arguments进行调用:值,键和整个Map。您应该执行x => ...而不是(v, k) => ...,如下所示:

const mp: any[] = [];
this.reconciled.forEach((v, k) => mp.push({transactionID: k, reconciled: v}));

希望有帮助。祝你好运。