Deixei comentado no código o meu entendimento para resolução da atividade 5.
//Exercicio 5
const departamentos = [
{
id: 1,
nome: "Vendas",
funcionarios: [
{ id: 101, nome: "Ana", cargo: "Vendedor" },
{ id: 102, nome: "Carlos", cargo: "Gerente de vendas" }
]
},
{
id: 2,
nome: "TI",
funcionarios: [
{ id: 201, nome: "Maria", cargo: "Desenvolvedor" },
{ id: 202, nome: "João", cargo: "Analista de sistemas" }
]
}
];
function encontrarFuncionarioPorId (valor){
for ( departamento of departamentos){ //percorre todo array departamentos
const encontrado = departamento.funcionarios.find((funcionario) => funcionario.id === valor ); //seleciona o funcionario atual dentro do departamento que esta sendo interado, para buscar o id desse funcionario e comprar com o valor passado no parametro.
if (encontrado){ //se buscou algo será TRUE
return encontrado; //passará o valor de departamento.funcionarios ao qual id seja igual a VALOR. E se encerra o loop do FOR
};
};
return null; // caso o looping do FOr resulte em nada retornará o valor NULL;
};
//chamada para um funcionário existente na lista
let funcionarioEncontrado = encontrarFuncionarioPorId(201);
funcionarioEncontrado != null ? console.log("Funcionário encontrado (ID 201):", funcionarioEncontrado): console.log("\nFuncionário não encontrado:", funcionarioEncontrado);
//chamada para um funcionário que não existente na lista
funcionarioEncontrado = encontrarFuncionarioPorId(103);
funcionarioEncontrado != null ? console.log("Funcionário encontrado (ID 201):", funcionarioEncontrado): console.log("\nFuncionário não encontrado:", funcionarioEncontrado);