Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Lista de exercícios 3

Segue a minha solução para a lista de exercícios nº 3:

Ex 1:

const pessoa = {
    nome: 'Juscelino Da Silva',
    notas: [9, 8, 7.5, 10],
    calcularMediaNotas: function() {
        let soma = 0;
        let cont = 0;
        for (const element of this.notas) {
            cont++;
            soma = soma + element;
        }
        return soma/cont;
    },
    classificarDesempenho: function() {
        media = this.calcularMediaNotas();
        if(media >= 9){
            return 'Desempenho excelente';
        } else{
            if(media >= 7.5 && media < 9){
                return 'Bom desempenho';
            } else{
                if(media >= 6 && media < 7.5){
                    return 'Desempenho regular';
                } else{
                    return 'Desempenho insuficiente';
                }
            }
        }
    }
}

console.log(`A média é: ${pessoa.calcularMediaNotas()}`);
console.log(`Desempenho: ${pessoa.classificarDesempenho()}`);

Ex 2:

const carro = {
    marca: 'Toyota',
    modelo: 'Toyota Xei 2.0 Flex 16v Aut.',
    ano: 2015,
    cor: 'Preto',
    kilometragem: 104600,
    combustivel: 'flex',
    cambio: 'automático'
}

function infoObj(obj){
    for (const chave in obj) {
        console.log(`chave: ${chave}, valor: ${obj[chave]}`);
    }
}

infoObj(carro);

Ex 3:

const carro = {
    marca: 'Toyota',
    modelo: 'Toyota Xei 2.0 Flex 16v Aut.',
    ano: 2015,
    cor: 'Preto',
    ligado: false,
    ligar: function(){
        if(this.ligado == true){
            return 'O carro não pode ser ligado novamente pois já está ligado.';
        } else{
            this.ligado = true;
            return 'O carro está ligado.';
        }
    },
    desligar: function(){
        if(this.ligado == false){
            return 'O carro não pode ser desligado novamente pois já está desligado.';
        } else{
            this.ligado = false;
            return 'O carro está desligado.';
        }
    },
    obterDetalhes: function(){
        const detalhesCarro = `O carro da marca ${this.marca}, modelo ${this.modelo}, ano ${this.ano}, cor ${this.cor}, ${this.ligado ? 'está ligado' : 'está desligado'}.`;
        return detalhesCarro;
    }
}

console.log(carro.ligar());
console.log(carro.desligar());
console.log(carro.obterDetalhes());

Ex 4:

const carro = {
    marca: 'Toyota',
    modelo: 'Toyota Xei 2.0 Flex 16v Aut.',
    ano: 2015,
    cor: 'Preto',
    ligado: false
}

Object.defineProperty(carro, 'placa', {
  value: 'NEV-0590',
  enumerable: false
});


console.log('Chaves enumeráveis:');
for (const chave in carro) {
    console.log(`chave: ${chave}, valor: ${carro[chave]}`);
}
console.log('');
console.log(Object.keys(carro));
console.log('Placa(não enumerável): ', carro.placa);

Ex 5:

const carroNovo = {
    marca: 'Pontiac',
    modelo: 'Trans-AM 5.7 V8',
    ano: 1991,
    cor: 'Verde'
}

const carroComNovosDetalhes = {
    ...carroNovo,
    RENAVAM: '10863194637',
    Placa: 'NEV-0590'
}

console.log(carroComNovosDetalhes);
2 respostas
solução!

Oi, Vitor.

Agradeço por compartilhar.

Gostei bastante da sua solução, ficou bem organizada e você explorou diferentes formas de manipular objetos em JavaScript: desde calcular médias com for...of, até o uso de Object.defineProperty e o spread operator para criar novos objetos. Isso mostra que você tá entendendo bem como aplicar os recursos da linguagem em contextos variados.

Continue praticando, sua evolução tá clara.

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

Muito obrigado!!