const chooseSpawn = (roleCount) => { const priorityQueue = [ 'harvester', 'miner', 'transporter', ] let nextSpawn _.reduce(priorityQueue, (expectedRoleCount, role) => { if (!expectedRoleCount[role]) expectedRoleCount[role] = 0 expectedRoleCount[role] += 1 if (nextSpawn === 'undefined' && roleCount[role] < expectedRoleCount[role]) { nextSpawn = role } return expectedRoleCount }, {}) return nextSpawn }