gpt4 book ai didi

javascript - 如何在 typescript 中从 Map 获取所有键?

转载 作者:太空宇宙 更新时间:2023-11-04 15:38:02 24 4
gpt4 key购买 nike

我使用Angular 2。我还有 StatisticsService 它有这个方法:

getComingStatistics(): Promise<Map<String, number>> {
const url = `${this.eventUrl}/rest/report/statistic/coming`;
return this.http.get(url)
.toPromise()
.then(response => {

return response.json().data as Map<String, number>
})
.catch(this.handleError);
}

我从组件中进行此调用:

constructor(private statisticsService: StatisticsService) {}

comingStatistics: Map<String, number>;
allComingUsers: number;

ngOnInit(): void {
this.statisticsService.getComingStatistics().then(comingStatistics => {
console.log(comingStatistics);
console.log(comingStatistics.values());
});
}

问题出在这一行console.log(comingStatistics.values());。我有这个异常:未捕获( promise ):TypeError:comingStatistics.values 不是函数

此外, map 的任何方法都不起作用(例如 keys()forEach 等)。获取值的方法只有一种:comingStatistics['someKey']

如何获取 map 的所有键和值?

最佳答案

类型断言欺骗类型系统将结果视为映射

return response.json().data as Map<String, number>

但它不会使 data 对象成为 map 。

它应该转换为Map才能成为 map :

return new Map(Object.entries(response.json().data));

关于javascript - 如何在 typescript 中从 Map 获取所有键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44138356/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com