JSFiddle - React, Tailwind, and code Playground
by tonytlwu
HTML
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.11/lodash.min.js"></script>
JavaScript
var data = [
{
author: 'Tony',
title: 'Book 1'
},
{
author: 'Tony',
title: 'Book 2'
},
{
author: 'Nick',
title: 'Book 1'
},
{
author: 'Nick',
title: 'Book 2'
},
{
author: 'Nick',
title: 'Book 3'
},
{
author: 'Nick',
title: 'Book 3'
}
];
var bookCounts = _.countBy(_.uniqBy(data, function (value) {
return JSON.stringify({
author: value.author,
title: value.title
});
}), function (value) {
return value.author;
});
console.log(_.orderBy(_.map(_.keysIn(bookCounts), function (key) {
return {
author: key,
count: bookCounts[key]
}
})), ['count'], ['desc']);
var results = [
{
author: 'Tony',
count: 2
},
{
author: 'Nick',
count: 3
}
];