import {PerkId, PerksMap, Upgrade} from "./types"; export function getMajorityValue(arr: string[]): string { const count: { [k: string]: number } = {}; arr.forEach((v) => (count[v] = (count[v] || 0) + 1)); // Object.values inline polyfill const max = Math.max(...Object.keys(count).map((k) => count[k])); return sample(Object.keys(count).filter((k) => count[k] == max)); } export function sample(arr: T[]): T { return arr[Math.floor(arr.length * Math.random())]; } export function sumOfKeys(obj:{[key:string]:number} | undefined | null){ if(!obj) return 0 return Object.values(obj)?.reduce((a,b)=>a+b,0) ||0 } export const makeEmptyPerksMap = (upgrades: { id:PerkId }[]) => { const p = {} as any; upgrades.forEach((u) => (p[u.id] = 0)); return p as PerksMap; };