Сгруппируйте внутренние свойства из массива объектов на карту

У меня есть массив объектов, и я хочу сгруппировать / упорядочить некоторые внутренние свойства на карте в соответствии с ключом. Я написал этот код, но хотел бы знать, есть ли способ его оптимизировать?

const myArray = [{
    getValue: () => {
      return {
        country: 'France',
        city: 'Toulouse',
      };
    },
  },
  {
    getValue: () => {
      return {
        country: 'England',
        city: 'London',
      };
    },
  },
  {
    getValue: () => {
      return {
        country: 'France',
        city: 'Paris',
      };
    },
  },
];
const myMap = new Map();
myArray.forEach(item => {
  const key = item.getValue().country;
  const value = item.getValue().city;
  if (myMap.has(key)) {
    myMap.get(key).push(value);
  } else {
    myMap.set(key, [value]);
  }
});


for (const [key, value] of myMap) {
  console.log(`${key} = ${value}`);
}

0

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *