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);