【发布时间】:2019-01-26 00:01:51
【问题描述】:
所以我在一个组件中有一个这样的地图。
reconciled = new Map<number, boolean>();
我订阅了它用一个粗箭头函数改变,在他们的“改变”事件上连接了几个材料复选框:
changed = (tranId: number, checked: boolean) => this.reconciled.set(tranId, checked);
我喜欢我将它连接到一个事件,如果有一个数字作为键,它会将值更新为 true 到 false(如果存在),否则添加一个新条目。但是,我想将它作为 JSON 传递给服务,以替换我想要的集合名称。到目前为止,我有这个:
const mp: any[] = [];
this.reconciled.forEach(x => mp.push({transactionID: x, reconciled: x}));
显然,这是两次获得相同的布尔值。但是我看不到传入的映射对象的“键”。我更习惯于 C#,我可以在其中使用字典,然后从中“选择”任何我想要的东西。我只是不知道语法,但基本上我想要字典的行为,然后能够匿名描述我想在提交方法上调用它们的键和值。
【问题讨论】:
-
Map.prototype.forEach()接受一个用three arguments 调用的回调:值、键和整个Map。而不是x => ...你应该做(v, k) => ... -
@jcalz 谢谢,我知道这很简单。如果我在 Visual Studio Code(facepalm) 中将鼠标悬停在 foreach 上更长时间就好了。
标签: typescript dictionary angular7 anonymous-types