Ваш вопрос о запросе вложенного объекта с использованием Map недействителен. Карта не может сделать это. Вы должны либо сплющить свой объект перед тем, как поместить его в Map, либо найти альтернативный способ, который поддерживает запросы к вложенным данным.
Я бы не советовал выровнять вашу структуру с единственной целью использования карты. Как вы справляетесь с ключевыми столкновениями? Это становится более сложным.
Итак, давайте рассмотрим несколько способов запроса вложенных данных:
// how to query a nested data structure.
const get = (prop, ...props) => obj =>
obj == null || prop == null
? obj
: get(...props)(obj[prop])
const obj = {'k1': {'k2': {'k3': 'Test Value'}}};
const result = get('k1', 'k2', 'k3')(obj) // => 'Test Value'
Вы также можете использовать такую библиотеку, как Ramda.
import path from 'ramda/src/path
const obj = {'k1': {'k2': {'k3': 'Test Value'}}};
const result = path(['k1', 'k2', 'k3'], obj) // => 'Test Value'