[PROMOÇÃO] Assine com + 30% de desconto ANUAL MENSAL (últimas horas)
Renato Machado
Criador Renato Machado 06/12/2021

professor, pode me ajudar nessa duvida sobre array e objetos?

preciso comparar o valor da array gabarito com a array jogos (jogo.jogo)

tenho que listar no console o nome dos jogadores que acertaram, que no caso seria Bruna e Josiane nesse exemplo, veja o codigo abaixo

let gabarito = [10,22,33,41,55,68]

let jogador = ""

console.log("Gabarito " +gabarito)

let jogos = [ {nome: "Renato", jogo: [6,18,27,36,44,66]},

{nome: "Vanessa", jogo: [7,13,20,30,52,61]},

{nome: "Bruna", jogo: [10,22,33,41,55,68]},

{nome: "Helto", jogo: [12,28,34,40,58,65]},

{nome: "Josiane", jogo: [10,22,33,41,55,68]}

];

jogos.forEach((jogo)=>{

console.log("Jogos " + jogo.jogo)

})

Manager Carlos Ferreira 06/12/2021

Olá, Renato!
Tudo bem?

Você pode usar a função includes para validar se contém o item no array:
let gabarito = [10,22,33,41,55,68]

let usuarios = [
    {nome: "Renato", jogos: [6,18,27,36,44,66]},
    {nome: "Vanessa", jogos: [7,13,20,30,52,61]},
    {nome: "Bruna", jogos: [10,22,33,41,55,68]},
    {nome: "Helto", jogos: [12,28,34,40,58,65]},
    {nome: "Josiane", jogos: [10,22,33,41,55,68]}
];

usuarios.forEach((usuario) => {
    usuario.jogos.forEach((jogo) => {
        if (gabarito.includes(jogo)) {
            console.log(`O usuário ${usuario.nome} acertou o jogo ${jogo}`)
        }
    })
})

Carlos Ferreira
Criador Renato Machado 06/12/2021

perfeito Professor Carlos,muito obrigado,

mais nesse caso o resultado foi:

O usuário Bruna acertou o jogo 10

O usuário Bruna acertou o jogo 22

O usuário Bruna acertou o jogo 33

O usuário Bruna acertou o jogo 41

O usuário Bruna acertou o jogo 55

O usuário Bruna acertou o jogo 68

O usuário Josiane acertou o jogo 10

O usuário Josiane acertou o jogo 22

O usuário Josiane acertou o jogo 33

O usuário Josiane acertou o jogo 41

O usuário Josiane acertou o jogo 55

O usuário Josiane acertou o jogo 68

como faria para apenas mostrar os nomes dos ganhadores, no caso Bruna e Josiane?

Renato Machado
Criador Renato Machado 06/12/2021

Seria simplesmente dar um console assim?

console.log(`O usuário ${usuario.nome}`)

vou estudar sobre includes, fora o include haveria outra forma?

Renato Machado
Manager Carlos Ferreira 06/12/2021

let gabarito = [10,22,33,41,55,68]

let usuarios = [
    {nome: "Renato", jogos: [6,18,27,36,44,66]},
    {nome: "Vanessa", jogos: [7,13,20,30,52,61]},
    {nome: "Bruna", jogos: [10,22,33,41,55,68]},
    {nome: "Helto", jogos: [12,28,34,40,58,65]},
    {nome: "Josiane", jogos: [10,22,33,41,55,68]}
];

let ganhadores = []

usuarios.forEach((usuario) => {
    usuario.jogos.forEach((jogo) => {
        if (gabarito.includes(jogo)) {
            if (!ganhadores.includes(usuario)) {
                ganhadores.push(usuario)
            }
        }
    })
})

console.log('Ganhadores: ')
ganhadores.forEach(usuario => {
    console.log(usuario.nome)
})

Carlos Ferreira
Sabe a Solução? Ajude a resolver!

Precisa estar logado para conseguir responder a este ticket!

Clique Aqui Para Entrar!