Задать вопрос
@Kashmir2606

Как сгрупировать массив по date?

[
{
date:"2015-01-22",
dog:1
},
{
date:"2015-01-22",
cat:2
},
{
date:"2015-01-22",
duck:3
}
]

Должно получиться :
[
{
date:"2015-01-22",
dog:1,
cat:2,
duck:3
}
]
  • Вопрос задан
  • 2719 просмотров
Подписаться 2 Оценить 1 комментарий
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Фронтенд-разработчик
    10 месяцев
    Далее
  • Skillbox
    JavaScript
    3 месяца
    Далее
  • Нетология
    Fullstack-разработчик на Python + нейросети
    20 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 2
dhs
@dhs
Web-разработчик
var arr1 = [
		{date:"2015-01-22", dog:1},
		{date:"2015-01-22", cat:2},
		{date:"2015-01-22", duck:3},
		{date:"2015-01-22", duck:2},
		{date:"2015-01-22", cat:3},
		{date:"2015-01-22", dog:4}
	],
	arr2 = [];

for (var i = 0; i < arr1.length; i += 1) {

	if (arr2[arr1[i].date] && arr2[arr1[i].date].date) {
		for (n in arr1[i]) {
			if (n !== 'date') {
				arr2[arr1[i].date][n] = (arr2[arr1[i].date][n]) ? arr2[arr1[i].date][n] + arr1[i][n] : arr1[i][n];
			}
		}
	} else {
		arr2[arr1[i].date] = arr1[i];
	}

}

console.log(arr2);
Ответ написан
Комментировать
IonDen
@IonDen
JavaScript developer. IonDen.com
Вот функция группировки по общему ключу: jsfiddle.net/n8qaf58g
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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