JSFiddle - React, Tailwind, and code Playground

by bg100

HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.21/lodash.min.js"></script>

JavaScript

const companions = [
	{ token: 1, tier: "Common", species: "Bunny" },
  { token: 2, tier: "Rare", species: "Cow" },
  { token: 3, tier: "Rare", species: "Horse" },
  { token: 4, tier: "Common", species: "Cat" },
  { token: 5, tier: "Legendary", species: "Dog" },
  { token: 6, tier: "Common", species: "Bird" },
  { token: 7, tier: "Common", species: "Snake" }
];


const result = _.chain(companions)
	.groupBy(item => item.tier.toLowerCase())
  .map((items, key) => [ key, _.chain(items).map(s => s.species).sort().value() ])
  .fromPairs()
  .toPairs()
  .filter(items => items[1].length >= 2)
	.value();




console.log(result);