你如何从 Typescript 映射中转换 JSON 对象?
How do you cast a JSON object from a Typescript Map?
所以我在组件中有一个这样的地图。
reconciled = new Map<number, boolean>();
我订阅了它的变化,带有粗箭头功能,在他们的 'change' 事件上连接了几个 material 复选框:
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}));
显然这是两次获得相同的布尔值。但是我看不到传入的映射对象的 'Key'。我更习惯于 C#,在那里我可以使用字典,然后 'Select' 任何我想从中得到的东西。我只是不知道语法,但基本上我想要字典的行为,然后能够匿名描述我想在提交方法上调用它们的键和值。
Map.prototype.forEach()
接受一个用 three arguments 调用的回调:值、键和整个 Map
。而不是 x => ...
你应该做 (v, k) => ...
,如:
const mp: any[] = [];
this.reconciled.forEach((v, k) => mp.push({transactionID: k, reconciled: v}));
希望对您有所帮助。祝你好运。
所以我在组件中有一个这样的地图。
reconciled = new Map<number, boolean>();
我订阅了它的变化,带有粗箭头功能,在他们的 'change' 事件上连接了几个 material 复选框:
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}));
显然这是两次获得相同的布尔值。但是我看不到传入的映射对象的 'Key'。我更习惯于 C#,在那里我可以使用字典,然后 'Select' 任何我想从中得到的东西。我只是不知道语法,但基本上我想要字典的行为,然后能够匿名描述我想在提交方法上调用它们的键和值。
Map.prototype.forEach()
接受一个用 three arguments 调用的回调:值、键和整个 Map
。而不是 x => ...
你应该做 (v, k) => ...
,如:
const mp: any[] = [];
this.reconciled.forEach((v, k) => mp.push({transactionID: k, reconciled: v}));
希望对您有所帮助。祝你好运。