Вы можете легко создать новый объект Map
, используемый для сопоставления сокращений состояний с их полными именами, передав новую копию массива states
в конструктор Map
с обратными ключами и значениями:
const statesMap = new Map(states.map(([name, abbr]) => [abbr, name]));
Служит помощником для разрешения имен состояний при последующем создании новой карты statesFullData
из карты statesData
:
const statesFullData = new Map( // Create new map (full names-to-data) from...
Array.from( // ...array...
statesData, // ...from previous map (abbr-to-data)...
([abbr, data]) => [statesMap.get(abbr), data] // ...keys resolved to full name by abbreviation.
)
);
Посмотрите следующий фрагмент рабочей демо-версии :
const states = [
['Arizona', 'AZ'],
['Alabama', 'AL'],
['Alaska', 'AK'],
['Arkansas', 'AR'],
['California', 'CA'],
];
const statesData = new Map([
['AZ', "AZ data"],
['AL', "AL data"],
['AK', "AK data"],
['AR', "AR data"],
['CA', "CA data"],
]);
const statesMap = new Map(states.map(([name, abbr]) => [abbr, name]));
const statesFullData = new Map(
Array.from(
statesData,
([abbr, data]) => [statesMap.get(abbr), data]
)
);
console.log(...statesFullData);