После выполнения нескольких underscore.js операций (_.map
, _.each
, _.pluck
и _.flatten
), у меня есть массив объектов, выглядит следующим образом:Слияние массивов с underscore.js
var userArray = [
{id: 123456, username: "bill123", group: "ONE"},
{id: 123457, username: "joe123", group: "TWO"},
{id: 123457, username: "joe123", group: "TWO"},
{id: 123458, username: "jim123", group: "ONE"}
]
Мне нужно создать новый массив с удаленными дубликатами и подсчет количества раз, когда объект появился в массиве. Я могу получить желаемые результаты с двумя отдельными функциями underscore.js, но у меня возникли проблемы с объединением двух результатов.
Рабочими функции заключаются в следующем:
var uniqUsers = _.uniq(taggedUsers, false, function(user) {
return user.id
});
//returns array of unique objects in the same format as above
//[{id: 123457, username: "joe123", group: "TWO"},...]
var userCounts = _.countBy(taggedUsers, "id");
//returns the count for each user in the userArray in a single object
//{123456: 1, 123457: 2, 123458: 1}
Что наилучший подход для возвращения массива объектов, как это:
{id: 123457, username: "joe123", group: "TWO", count: 2}
Могу ли я добавить дополнительные поля в _.countBy
функция? Или мне нужно что-то сделать с _.map
?
Любая помощь была бы принята с благодарностью! Благодаря
Также будет плюсом, если массив отсортирован по количеству! – pingo