@Ooos
Front-End

Как посчитать количество повторяющихся элементов массива js и вывести в другом массиве?

Доброго всем дня!
Имеется массив в котором есть id
arr = [{id: 1},{id: 2},{id: 2},{id: 1},{id: 1},{id: 1}]

Нужно посчитать количество каждого id и вывести в отдельный массив
[{id: 1, sum: 4},{id: 2, sum: 2}]
  • Вопрос задан
  • 9145 просмотров
Решения вопроса 2
Как-то так. Возможно есть более изящное решение.
Если не изобретать велосипед, то лучше ищите тут.
Ответ написан
Комментировать
alexey-m-ukolov
@alexey-m-ukolov Куратор тега JavaScript
var arr = [{id: 1}, {id: 2}, {id: 2}, {id: 1}, {id: 1}, {id: 1}];
var counter = arr.reduce(function (o, i) {
	if (!o.hasOwnProperty(i.id)) {
		o[i.id] = 0;
	}
	o[i.id]++;
	return o;
}, {});
var result = Object.keys(counter).map(function (id) {
	return {id: id, sum: counter[id]};
});
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы