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
  }
];