@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
}
]
  • Вопрос задан
  • 2718 просмотров
Пригласить эксперта
Ответы на вопрос 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
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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