1
resposta

[Projeto] Desafio 10-Array - Encontrar Objeto

// Desenvolva uma função que receba um array de objetos representando estudantes de um curso e um objeto que representa um estudante procurado.
// Depois retorne se o objeto está presente no array.

/**
 * 
Estudar o código e rever conceito de objetos e JSON
 */

// Função que verifica se um objeto está presente no array
function estudantes(arr, objeto){
 return arr.some(item => JSON.stringify(item) === JSON.stringify(objeto));
}

// Array de objetos representando alunos
let estudanteCurso = [
    {
    "nome":"Luis",
    "curso":"direito"
    },

    {
    "nome":"Carla",
    "curso":"Engenharia Mecanica"
    },

    {
    "nome":"Mateus",
    "curso":"Oceanografo"
    }
]
//Busca Estudante
// Objeto que queremos verificar se está presente no array
const buscaEstudante= {nome:"Carla",curso:"Engenharia Mecanica"};

//Busca do objeto
// Utilizando a função para verificar a presença do objeto no array
const buscarObjeto = estudantes(estudanteCurso, buscaEstudante);

// Exibindo o resultado
if(buscarObjeto) {
    console.log('O aluno está presente no array.');
} else {
    console.log('O aluno não está presente no array.');
}
1 resposta

Oi, Ivan! Como vai?

Gostei da forma como você usou o método some() com JSON.stringify() para comparar objetos. Essa abordagem funciona bem quando os objetos têm a mesma ordem de propriedades, como no seu exemplo.

Uma dica interessante para o futuro é considerar o uso de comparação personalizada com every() e Object.entries() quando quiser mais controle sobre a lógica:


function compararObjetos(obj1, obj2) {
  return Object.entries(obj1).every(([key, value]) => obj2[key] === value);
}

Esse código verifica se todas as chaves e valores do obj1 existem no obj2. Assim, você evita depender da ordem das propriedades ou da conversão para JSON.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!