1
resposta

Ajuda com arrays

Estou resolvendo alguns exercicios do livro de Lógica de Programação e Algoritmos com JavaScript, e estou em um onde tenho que fazer um progama, onde mostra o numero de candidatos e acertos, e depois um im filtro com o numero de acertos suficiente, nessa segunda parte, preciso pegar os acertos do array e colocar em ordem decrescente porem nao sei como fazer o msm.

<!DOCTYPE html>
<html lang="pt-br">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" href="css/css_geral.css">
    <title>Document</title>
</head>
<body>
    <h1>Programa Concurso</h1>
    <p>Nome: 
        <input type="text" id="inNome">
    </p>
    <p>N° acertos
        <input type="text" id="inAcertos">
        <input type="button" value="Adicionar" id="btAdicionar" >
    </p>
    <p>
        <input type="button" value="Listar todos" id="btListar">
        <input type="button" value="Aprovados 2° chamada" id="btAprovados">
    </p>
    <pre id="outLista">
    </pre>
    <script src="js/exerc5_3.js"></script>
</body>
</html>
var candidatos = [];

function adiciona(){
    var inNome = document.getElementById("inNome");
    var inAcertos = document.getElementById("inAcertos");
    var nome = inNome.value;
    var acertos = Number(inAcertos.value);

    if(nome == "" || acertos == 0 || isNaN(acertos)){
        alert("Preencha os campos corretamente")
        inNome.focus();
        return;
    }

    candidatos.push({nome: nome, acertos: acertos})

    inNome.value = "";
    inAcertos.value = "";
    inNome.focus();

    listarCandidatos();
}

var btAdicionar = document.getElementById("btAdicionar");
btAdicionar.addEventListener("click", adiciona);

function listarCandidatos(){
    var lista = "";

    for(var i = 0; i < candidatos.length; i++){

        lista += candidatos[i].nome + " - " + candidatos[i].acertos + " acertos" + "\n"
    }

    document.getElementById("outLista").textContent = lista;
}

var btListar = document.getElementById("btListar");
btListar.addEventListener("click", listarCandidatos);

function aprovadosSegunda(){
    var lista = "";
    for(var i = 0; i < candidatos.length; i++){

        if(candidatos[i].acertos >= 30){
            lista += candidatos[i].nome + " - " + candidatos[i].acertos + " acertos" + "\n"
        }
    }
    document.getElementById("outLista").textContent = lista;
}
var btAprovados = document.getElementById("btAprovados");
btAprovados.addEventListener("click", aprovadosSegunda);

1 resposta

Vittor, se o seu objetivo é a ordenação, existe o método .sort() que pode ser utilizado para tal coisa. Vou deixar abaixo o link para a documentação do método, suas formas de uso, etc.

https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/Array/sort