Выберите одно свойство из Map.values ​​() - PullRequest
0 голосов
/ 29 августа 2018

Я бы хотел что-то вроде этого:

let myMap = new Map<string, any>();

myMap.set("aaa", {a: 1, b: 2, c:3});
myMap.set("bbb", {a: 1, b: 2, c:6});
myMap.set("ccc", {a: 1, b: 2, c:9});

let cs = myMap.values().map(x => x.c);

Выбор свойства c из всех записей на карте. Это не с:

Property 'map' does not exist on type 'IterableIterator<any>'.

Любое элегантное решение для этого?

1 Ответ

0 голосов
/ 29 августа 2018

Вы можете использовать Array.from(), чтобы превратить любую итерацию в массив:

let myMap = new Map();

myMap.set("aaa", {a: 1, b: 2, c:3});
myMap.set("bbb", {a: 1, b: 2, c:6});
myMap.set("ccc", {a: 1, b: 2, c:9});

// Basic example
let cs = Array.from( myMap.values() ).map(x => x.c);

console.log( cs );

// Array.from also takes a mapping function as the second parameter, so even shorter:

let cs_alt = Array.from( myMap.values(), x => x.c );

console.log( cs_alt );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...