Как вы преобразуете объект JSON из карты Typescript? - PullRequest
0 голосов
/ 26 января 2019

Итак, у меня есть такая же карта в компоненте.

 reconciled = new Map<number, boolean>();

Я подписываюсь на ее изменение с помощью жирной стрелки, подключенной к нескольким флажкам материала в их событии 'change':

changed = (tranId: number, checked: boolean) => this.reconciled.set(tranId, checked);

Мне понравилось, что я подключаю это к событию, и если для ключа существует число, оно обновляет значение с истинного на ложное, если оно существует, иначе добавляет новую запись.Однако я хочу передать его службе в виде JSON, которая заменяет имена, которые я хочу, для коллекции.До сих пор у меня есть это:

const mp: any[] = [];
this.reconciled.forEach(x => mp.push({transactionID: x, reconciled: x}));

Очевидно, что это получает тот же логический дважды.Но я не вижу «Ключа», который я могу видеть из переданного сопоставленного объекта. Я больше привык к C #, где я могу использовать словарь, а затем «Выбрать» все, что я хочу из этого.Я просто не знаю синтаксис, но в основном я хочу поведение словаря, но затем возможность анонимно описать ключ и значение того, что я хочу вызвать их в методе submit.

1 Ответ

0 голосов
/ 26 января 2019

Map.prototype.forEach() принимает обратный вызов, который вызывается с тремя аргументами : значением, ключом и целым Map. Вместо x => ... вы должны делать (v, k) => ..., как в:

const mp: any[] = [];
this.reconciled.forEach((v, k) => mp.push({transactionID: k, reconciled: v}));

Надеюсь, это поможет. Удачи.

...