Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Duvidas

Porque voce usou indice na declaracao da nota e nao media? vc declarou a lista de alunos como aluno e usou aluno ao declarar ela na funcao. declarou uma lista de media usando media, mas ao declarar na funcao vc usou indice, ate onde eu entendi o indice foi utilizado apenas para localizar a posicao do aluno que sera chamado. ficou meio confuso, pois se no caso eu nao precisasse declarar uma variavel indice, n poderia usar media?

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta
solução!

Olá, Renata, tudo bem?

Ok, vamos por partes para explicar o raciocínio de resolução do desafio.

Primeiramente, precisamos entender como as informações dos alunos e de suas médias foram estruturadas no código, que podemos conferir abaixo:

const alunos = ["João", "Juliana", "Ana", "Caio"];
const medias = [10, 8, 7.5, 9];

const listaDeAlunosEMedias = [alunos, medias];

Temos uma lista chamada alunos que possui quatro nomes de alunos. Também temos uma lista chamada medias que possui quatro médias. A lógica utilizada na criação dessas listas foi: o aluno da posição 0 da lista de alunos (João) possui a nota da posição 0 da lista de notas (10). Da mesma forma, a aluna da posição 1 da lista de alunos (Juliana) possui a nota da posição 1 da lista de notas (8). E assim por diante.

Por fim, as listas alunos e medias foram guardadas dentro de uma lista chamada listaDeAlunosEMedias.

O que o desafio pede é, em resumo: crie uma função que recebe o nome de um aluno como parâmetro e retorne a média desse aluno (caso ele exista na lista de alunos).

Então, nós criamos uma função chamada exibeNomeENota que recebe um parâmetro chamado aluno. Começamos a criar a função com o seguinte código:

const alunos = ["João", "Juliana", "Ana", "Caio"];
const medias = [10, 8, 7.5, 9];

const listaDeAlunosEMedias = [alunos, medias];

function exibeNomeENota(aluno){
    if (listaDeAlunosEMedias[0].includes(aluno)) {
        console.log(`${aluno} está cadastrado!`);
    } else {
        console.log("Aluno não encontrado!");
    }
}

Note que o nome do parâmetro aluno é diferente do nome da lista chamada alunos, então cuidado para não confundir essas informações.

Agora nós podemos passar uma simples string quando formos executar esse função, utilizando um código como o seguinte, por exemplo:

exibeNomeENota("João");

Especificamente com esse código, o parâmetro aluno será definido como "João" dentro da função.

Voltando à lógica do desafio, agora precisamos exibir a média desse aluno. Para fazer isso, nós precisamos ter conhecimento do índice desse aluno, obrigatoriamente. Isso porque, se o índice do João na lista de alunos é 0, então sabemos que a sua média está no índice 0 da lista de médias. Ou seja, se descobrirmos seu índice, descobriremos sua média.

Com isso, chegamos ao código final da função:

const alunos = ["João", "Juliana", "Ana", "Caio"];
const medias = [10, 8, 7.5, 9];

const listaDeAlunosEMedias = [alunos, medias];

function exibeNomeENota(aluno){
    if (listaDeAlunosEMedias[0].includes(aluno)) {
        const indice = listaDeAlunosEMedias[0].indexOf(aluno);

        const mediaDoAluno = listaDeAlunosEMedias[1][indice];

        console.log(`${aluno} tem a média ${mediaDoAluno}.`);

    } else {
        console.log("Aluno não encontrado!");
    }
}

exibeNomeENota("Juliana");

No final do código acima, passamos a string "Juliana" ao executar a função exibeNomeENota. Nesse caso, o parâmetro aluno será definido como "Juliana". Da mesma forma, seu índice será descoberto e guardado na constante indice. Em seguida, sua média será descoberta e guardada na constante mediaDoAluno.

Espero ter ajudado! Você possui alguma dúvida em relação a como acessar a lista de duas dimensões ou a como utilizar os métodos includes e indexOf?

Qualquer coisa estamos aqui.