Подсчитайте дубликаты и упорядочите их в массиве объектов Javascript - PullRequest
0 голосов
/ 05 февраля 2020

У меня есть следующий массив объектов:

[
  {
    id: 1,
    someOtherStuff: 'abc,
    Drink: { name: 'Coca-Cola', price: 2.5 }
  },
  {
    id: 2,
    someOtherStuff: 'def,
    Drink: { name: 'Fanta Orange', price: 3 }
  },
  {
    id: 3,
    someOtherStuff: 'ghi,
    Drink: { name: 'Sprite', price: 1.8 }
  },
  {
    id: 6,
    someOtherStuff: 'jkl,
    Drink: { name: 'Coca-Cola', price: 2.5 }
  },
  {
    id: 7,
    someOtherStuff: 'mno,
    Drink: { name: 'Coca-Cola', price: 2.5 }
  }
]

Я хочу сгруппировать их по дубликатам:

[
  {
    count: 3,
    drinkName: 'Coca-Cola',
    price: 2.5
  },
  {
    count: 1,
    drinkName: 'Fanta Orange',
    price: 3
  },
   {
    count: 1,
    drinkName: 'Sprite',
    price: 1.8
  }
]

Я пытался сопоставить новый массив несколькими способами. Но, к сожалению, я не могу заставить его работать

Я надеюсь, что кто-то может помочь мне с что

1 Ответ

1 голос
/ 05 февраля 2020
let result= {};
inputArray.map((item)=>{
  let key = `${item.Drink.name}-${item.Drink.price}`;
  if(result[key]){
    result[key].count = result[key].count +1;
  }else{
    result[key] = {count:1,drinkName:item.Drink.name,price:item.Drink.price};
  }
});
result = Object.values(result);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...