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

Desafio: lista de exercícios

Desafio 01:

const biblioteca = [
    { id: 1, titulo: "O Senhor dos Anéis", autor: "J.R.R. Tolkien", anoPublicacao: 1954 },
    { id: 2, titulo: "Dom Quixote", autor: "Miguel de Cervantes", anoPublicacao: 1605 },
    { id: 3, titulo: "1984", autor: "George Orwell", anoPublicacao: 1949 }
];

function encontrarLivroPorID(id) {
    const livroBuscado = biblioteca.find((livro) => livro.id === id);

    // if(livroBuscado) {
    //     console.log(livroBuscado);
    // } else {
    //     console.log(null);
    // }

    return livroBuscado ? console.log(livroBuscado) : console.log(null);
};

encontrarLivroPorID(3);
encontrarLivroPorID(8);

Desafio 02:

const catalogoFilmes = [
    { id: 1, titulo: "Matrix", diretor: "Lana Wachowski", anoLancamento: 1999 },
    { id: 2, titulo: "Jurassic Park", diretor: "Steven Spielberg", anoLancamento: 1993 },
    { id: 3, titulo: "Inception", diretor: "Christopher Nolan", anoLancamento: 2010 }
];

function filtrarFilmesPorAno(lista, ano) {
    return lista.filter((filme) => filme.anoLancamento === ano);
};

console.log(filtrarFilmesPorAno(catalogoFilmes, 2010));
console.log(filtrarFilmesPorAno(catalogoFilmes, 1993));
console.log(filtrarFilmesPorAno(catalogoFilmes, 1999));

Desafio 03:

const listaProdutos = [
    { id: 1, nome: "Camiseta", preco: 25.99 },
    { id: 2, nome: "Calça Jeans", preco: 49.99 },
    { id: 3, nome: "Tênis", preco: 79.99 },
    { id: 4, nome: "Boné", preco: 15.99 }
];

function filtrarOrdenarProdutosPorPreco(maxPreco, propriedade) {
    const produtosBaratos = listaProdutos.filter((produto) => produto.preco <= maxPreco);
    
    return  produtosBaratos.sort((a, b) => {
        if(a[propriedade] < b[propriedade]) return -1;
        if(a[propriedade] > b[propriedade]) return 1;
        return 0;
    });
};

console.log(filtrarOrdenarProdutosPorPreco(25.99, 'preco'));

Desafio 04:

const animais = [
    { id: 1, nome: "Leão", especie: "Felino", idade: 5 },
    { id: 2, nome: "Elefante", especie: "Mamífero", idade: 10 },
    { id: 3, nome: "Pinguim", especie: "Ave", idade: 3 }
];

function ordenarAnimais(comparacao) {
    return animais.sort(comparacao);
};


function compararIdadeCrescente(a, b) {
    if(a.idade < b.idade) return -1;
    if(a.idade > b.idade) return 1;
    return 0;
};

const animaisOrdenadosCrescente = ordenarAnimais(compararIdadeCrescente);
console.log(animaisOrdenadosCrescente);

function compararIdadeDecrescente(a, b) {
    if(a.idade > b.idade) return -1;
    if(a.idade < b.idade) return 1;
    return 0;
};

const animaisOrdenadosDcrescente = ordenarAnimais(compararIdadeDecrescente);
console.log(animaisOrdenadosDcrescente);

Desafio 05:

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(id) {
    for (const departamento of departamentos) {
        const funcionarioEncontrado = departamento.funcionarios.find((funcionario) => funcionario.id === id);

        if(funcionarioEncontrado) return funcionarioEncontrado;
    };
    return `Funcionário com o id ${id} não encontrado`;
};


const funcionarioBuscado = encontrarFuncionarioPorId(202);
console.log(funcionarioBuscado);
1 resposta
solução!

Olá João! Tudo joia?

Todas as suas funções parecem estar de acordo com o que foi pedido nos desafios. Continue praticando e explorando mais funcionalidades do JavaScript.

Bons estudos!