Как найти в массиве объектов максимальное количество объектов совпадающих по наименованию ключа?

Вопрос, существует массив объектов у которых название параметра отличается на цифру в конце.
const arr = [{id0: 200, sum0: 1000},{id10: 300, sum300: 1500},{id0: 200}, .....] .... length > 10000
получаю уникальные значения ключа id. например в данном случае const uniqId = [200, 300]
как понять каких объектов больше?
чтоб получить ответ
const max = id0
  • Вопрос задан
  • 79 просмотров
Решения вопроса 1
Geminix
@Geminix
Фуллстек nuxt, .net разработчик
const arr = [
  { id0: 200, sum0: 1000 },
  { id0: 200, sum0: 1000 },
  { id0: 200, sum0: 1000 },
  { id0: 200, sum0: 1000 },
  { id10: 300, sum300: 1500 },
  { id10: 300, sum300: 1500 },
  { id10: 300, sum300: 1500 },
];

const calc = arr.reduce(
  (acc, current) => {
    const key = Object.keys(current).find((key) => key.startsWith("id"));
    acc[key] ? acc[key]++ : (acc[key] = 1);
    if (acc[key] > acc.result.count) acc.result = { id: key, count: acc[key] };
    return acc;
  },
  { result: { id: null, count: 0 } }
);

console.log(calc.result)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы