1
resposta

[Projeto] PRÁTICA COM ATIVIDADES: RESPOSTA;

Mais uma lista de atividades concluídas :)

//ATIVIDADE 1

const pessoa = {
    
    nome: 'Saturn',
    notas: [9, 5.5, 7, 8],
    
    calcularMediaNotas: function(){
        const somaNotas = this.notas.reduce((soma, nota) => soma + nota, 0)
        const media = somaNotas / this.notas.length;
        return media.toFixed(2);
    },

    calcularDesempenho: function(){
        const media = this.calcularMediaNotas();

        if(media >= 9) {
            return `Desempenho excelente, media: ${media}!`
        } else if (media >= 7.5 && media <= 8.9) {
            return `Bom desempenho, media: ${media}!`
        } else if (media >= 6 && media <= 7.5 ){ 
            return `Desempenho regular, media: ${media}!`
        } else {
            return `Desempenho insuficiente, media: ${media}!`
        }
    } 
}


console.log(pessoa.calcularMediaNotas()); //saída: 7.38
console.log(pessoa.calcularDesempenho()); //saída: Desempenho regular, media: 7.38!

//ATIVIDADE 2

const carro = {
    marca: 'Hyundai',
    modelo: 'HB20',
    ano: 2022,
    cor: 'Branco'
}


for(let infosCarro in carro) {
    console.log(`${infosCarro}: ${carro[infosCarro]}`)
}


carro.valor = 'R$ 60.733'

//OBJ CARRO ATUALIZADO
for(let infosCarro in carro) {
    console.log(`${infosCarro}: ${carro[infosCarro]}`);
}
//ATIVIDADE 3

//aidicionando a propriedade que mostra se o carro está desligado ou ligado
carro.estaLigado = true;

//adicinando a função que liga o carro
carro.ligar = function() {
    if (this.estaLigado) {
        return `O carro já está ligado!`;
    } else {
        this.estaLigado = true;
        return `O carro foi ligado com sucesso!`;
    }
}

//adicionando a função que desliga o carro
carro.desligar = function() {
    if(this.estaLigado) {
        this.estaLigado = false;
        return `O carro foi desligado com sucesso!`;
    } else {
        return `O carro já está desligado!`;
    }
}


//adicionando a propridade que obtém os detalhes do nosso carro
carro.obterDetalhes = function() {
return (`Marca: ${this.marca} \n` +
        `Modelo: ${this.modelo} \n` +
        `Ano: ${this.ano} \n` +
        `Cor: ${this.cor} \n` +
        `Ligado: ${this.estaLigado} \n`)
}

//definindo as funções como NÃO enumeráveis
Object.defineProperty(carro, 'obterDetalhes', { enumerable: false });
Object.defineProperty(carro, 'desligar', { enumerable: false });
Object.defineProperty(carro, 'ligar', { enumerable: false });

console.log(carro.desligar()); //saída: O carro foi desligado com sucesso!
console.log(carro.desligar()) //saída: O carro já está desligado!

console.log(carro.ligar()); //saída: O carro foi ligado com sucesso!

console.log(carro.obterDetalhes()); //saída: 

// Marca: Hyundai
// Modelo: HB20
// Ano: 2022
// Cor: Branco
// Ligado: true

//ATIVIDADE 4

//definindo a chave e valor de "placa"
carro.placa = 'NO HESI'

Object.defineProperty(carro, 'placa', { enumerable: false })

console.log('PROPRIEDADES ENUMERÁVEIS DO CARRO:')
for(let infosCarro in carro) {
    console.log(`${infosCarro}: ${carro[infosCarro]}`)
}

console.log(Object.keys(carro)); //saída: [ 'marca', 'modelo', 'ano', 'cor', 'valor', 'estaLigado' ]
console.log(Object.keys(carro.placa)); //saída:['0', '1', '2', '3', '4', '5', '6'] ?

//ATIVIDADE 5

const carroNovo = {
    marca: 'McLaren',
    modelo: '750S',
    ano: 2024,
    cor: 'Roxa'
}

const carroComNovosDetalhes = { ...carro, ...carroNovo };

console.log(carroComNovosDetalhes); //saída: 

// marca: 'McLaren', 
// modelo: '750S',
// ano: 2024,
// cor: 'Roxa',
// valor: 'R$ 60.733',
// estaLigado: true

//como podemos observar, as chaves com a mesma indentificação acabaram por se sobrepor, sobrando do obj carro
//apenas aqueles que continham chaves diferentes de carroNovo

carroComNovosDetalhes.modelo = 'F1'

console.log(carroComNovosDetalhes); //saída: 

// marca: 'McLaren',
// modelo: 'F1',
// ano: 2024,
// cor: 'Roxa',
// valor: 'R$ 60.733',
// estaLigado: true
1 resposta

Olá Saturn, tudo bem com você?

Obrigado por compartilhar seu modo de resolução com a comunidade Alura. Você está mandando muito bem! Continue praticando e explorando diferentes códigos e lógicas para fortalecer seu entendimento.

Conte com o apoio do Fórum na sua jornada. Abraços e bons estudos!