typescript - 如何从 Typescript 映射中转换 JSON 对象?
问题描述
所以我在一个组件中有一个这样的地图。
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()
接受一个使用三个参数调用的回调:值、键和整体Map
。而不是x => ...
你应该做(v, k) => ...
的,如:
const mp: any[] = [];
this.reconciled.forEach((v, k) => mp.push({transactionID: k, reconciled: v}));
希望有帮助。祝你好运。
推荐阅读
- android - 无法让 selenium 和 android 虚拟设备相互交谈
- mysql - 如何在将新列添加到表的迁移中为现有行插入与默认值不同的值
- flutter - 颤振 - Cache_network_image。我用同名的新图像替换了旧图像。但是对app没有影响
- git - 每当我们创建提交时,git 可以在第 N 行打开 vim 编辑器吗?
- r - 使用 r 编程显示列名
- linux - Linux 存储增长
- c - 无法得到正确答案
- excel - 将公式与内部变量连接起来
- css - 如何在循环 React 中有条件地添加包装器?
- azure-logic-apps - 从 IoT Central v3 连接器逻辑应用执行命令时如何发送 json 有效负载