0
respostas

Algoritmo para saber se a itens repetidos em uma array.

Sou iniciante em programação, estou caminhando nos estudos em javascript, fiz um código para informar em uma disputa quem obteve maior pontuação, inicialmente temos uma outra função que criei que será omitida, ela faz o levantamento referente a pontuação de cada um, depois armazenei em arrays separadas por categorias os valores, a pontuação é dado com esse pensamento: São três salas em disputa, e há categorias representadas por cores referente a premiação, as categorias são as arrays que estão armazenando o valor em sequencia de cada uma das salas, exemplo:

AZUL - [ 0.9333333333333333, 0.8571428571428571, 0.8 ]

O primeiro valor é referente a sala A, segundo a sala B e terceiro sala C, esta em disputa neste exemplo a bandeira azul, vence essa categoria quem possui a maior pontuação dentro dessa categoria.

Uma parte eu conseguir, porém deu bug na hora que houve um empate kkkkkk, nesse caso, quando há números repetidos dentro da array, eu não consegui resolver esse problema no momento, preciso que a função devolver pra mim o ganhador, ou se houve empate e devolva, e quantos empataram e quais os índices contem valores iguais, no final colocaremos um critério de desempate, será que alguém da comunidade pode me ajudar? Veremos o parte código em anexo logo a seguir:

console do resultado das novas arrays contendo os valores de cada sala já feito os cálculos:

AZUL - [ 0.9333333333333333, 0.8571428571428571, 0.8 ]

VERDE - [ 1, 1, 0.975 ]

VERMELHO - [ 0.9642857142857143, 0.9666666666666667, 0.725 ]

AMARELO - [ 0, 2, 3 ]

Função está pegando o valor dos pontos de cada um e faz uma comparação pra achar o ganhador, e retorna o objeto que ganhou.

function ganhador(pontos){

  let ganhadorBandeira = 0;

for ( atual = 0; atual < pontos.length; atual++ ){

    if(pontos[atual] > pontos[ganhadorBandeira]){

            ganhadorBandeira = atual

        }      
    }    

 }
 console.log(`Ganhador: ${salasAdultos[ganhadorBandeira].sala}`)

}

ganhador(pontosVermelho) ganhador(pontosAzul) ganhador(pontosAmarelo) ganhador(pontosVerde) .

SAIDA: Ganhador: Leia Ganhador: josue Ganhador: Rebeca Ganhador: josue - erro é para dar empate