Вам нужно посчитать элементы, а затем отсортировать записи по количеству
let mixedArr = ["Ship", "Ship", "Boat", "Ship", "Boat", "yacht" ]
console.log(
sortByCount(mixedArr)
)
function sortByCount(arr) {
return [...arr.reduce((map, item) => {
if(map.has(item)) {
map.set(item, map.get(item) + 1)
} else {
map.set(item, 1)
}
return map
}, new Map).entries()] // create [[name, count]]
.sort(([_, a], [__, b]) => b - a) // sort by count numerically
.map(([name]) => name) // extract names
}