所以我在组件中有一个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方法上调用它们的键和值。
答案 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}));
希望有帮助。祝你好运。