Найти повторения по полю date в коллекции и объединить повторяющиеся объекты в один [дубликат]

125
15 марта 2019, 23:10

На данный вопрос уже ответили:

  • Как посчитать количество повторений каждого значения в массиве? 4 ответа

Есть коллекция вида

dict = [
  {
    date: '19.10.2018,
    hours: 2,
  },
  {
    date: '19.10.2018,
    hours: 10,
  },
  {
    date: '24.11.2010,
    hours: 4,
  },
]

Я бы хотел совместить поле hours у объектов с повторяющейся датой, то есть:

 [
      {
        date: '19.10.2018,
        hours: 12,
      },
      {
        date: '24.11.2010,
        hours: 4,
      },
    ]

Есть ли какие нибудь идеи как лучше это реализовать? Спасибо!!!

Answer 1

var dict = [ 
  { 
    date: '19.10.2018', 
    hours: 2, 
  }, 
  { 
    date: '19.10.2018', 
    hours: 10, 
  }, 
  { 
    date: '24.11.2010', 
    hours: 4, 
  }, 
], 
obj = {}; 
 
dict.forEach(function(item){ 
	 
  if(!obj[item.date]){ 
    obj[item.date] = item; 
  } else { 
    obj[item.date].hours =  obj[item.date].hours + item.hours; 
  } 
}); 
 
console.log(obj); 
  

READ ALSO
Не выводит информацию из json

Не выводит информацию из json

Суть в том что делаю запрос на файл с поиском ID И просто он всегда отвечает False прошу помочь

166
getJSON внутри функции

getJSON внутри функции

Продолжение данной темы Поиск и возврат значения по ID (for json) Возникла другая проблемаИзначально планировалось использовать данный код, как...

143
Функции в JavaScript, Прототипы

Функции в JavaScript, Прототипы

Изучаю JavaScriptЧто значит "

149