JSFiddle - React, Tailwind, and code Playground
JavaScript
const ourScore = `EbAAdbBEaBaaBBdAccbeebaec`
const sortObject = (obj) => {
const arr = []
let prop
for (prop in obj) {
if (obj.hasOwnProperty(prop)) {
arr.push({
key : prop,
value: obj[prop],
})
}
}
arr.sort((a, b) => b.value - a.value)
return arr
}
const getPlayers = (score) => {
const scoreArrayLowered = score.toLowerCase().split(``)
return [...new Set(scoreArrayLowered)].reduce((acc, item) => {
acc[item] = 0
return acc
}, {})
}
const scoreCalc = (score) => {
const scoreArray = score.split(``)
const playersList = getPlayers(score)
scoreArray.forEach((character) => {
const keySave = character.toLowerCase()
if (character === character.toUpperCase()) {
playersList[keySave] = playersList[keySave] - 1
}
if (character === character.toLowerCase()) {
playersList[keySave] = playersList[keySave] + 1
}
})
const sorted = sortObject(playersList)
return sorted
}
console.log(scoreCalc(ourScore))