Как итерерироваться по Map в typescript?

254
25 мая 2017, 10:48

Использую 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()); у меня падает исключение Uncaught (in promise): TypeError: comingStatistics.values is not a function.

Ни один из методов map'а (таких как keys(), forEach и т.д.) не работает с аналогичным исключением. Единственный способ взять значение:

comingStatistics['someKey']

Вопрос. Как мне вытащить все ключи со значениями из данного отображения (карты) ?

READ ALSO
Ошибка при компиляции webpack

Ошибка при компиляции webpack

Имеется такой конфиг:

246
jQuery custom content scroller + scrollreveal или fadeIn content

jQuery custom content scroller + scrollreveal или fadeIn content

Добрый, для скрол использую custom content scroller, по факту же получается что плагин создает обертку для контента в которой прокручивает контент,...

250
Метод filter для массива - непонятное условие

Метод filter для массива - непонятное условие

Есть задачкаУдалить все элементы из массива (arguments[0]), которые содержат значения из arguments[1], [2]

239
Рендеринг компоненты из редьюсера

Рендеринг компоненты из редьюсера

Добрый вечерСтолкнулась со следующей проблемой:

231