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

Resolução

// Exercício 1

const pessoa = {
    nome: 'Maxine',
    notas: [7.6, 7.6, 7.6, 7.6],
    calcularMediaNotas() {
        const somaNotas = this.notas.reduce((acumulador, valorAtual) => acumulador + valorAtual, 0);
        const media = somaNotas / this.notas.length
        return parseFloat(media)
    },
    classificarDesempenho() {
        const media = this.calcularMediaNotas() ;

        if (media >= 9 && media <= 10) {
            console.log(`Média: ${media} | Desempenho: Excelente`)
        } else if (media >= 7.6 && media <= 8.9) {
            console.log(`Média: ${media} | Desempenho: Bom`)
        } else if (media < 7.5 && media < 9) {
            console.log(`Média: ${media} | Desempenho: Regular`)
        } else if (media < 6 && media >= 0) {
            console.log(`Média: ${media} | Desempenho: Insuficiente`)
        } else {
            console.log('Média abaixo de 0 ou acima de 10 são médias inválidas.')
        }

        return media
    }
}

const mediaMaxine = pessoa.classificarDesempenho()

console.log(mediaMaxine)

// ---

console.log('-------------------')

// Exercício 2

const carro = {
    marca: 'Ford',
    modelo: 'Ka',
    ano: 2012,
    cor: 'vermelho'
}

function percorrerCarro() {
    for (const key in carro) {
        console.log(`A chave '${key}' tem o valor '${carro[key]}'.`)
    }
}

percorrerCarro()

// ---

console.log('-------------------')

carro.placa = 'KIW-9838'

percorrerCarro()

// ---

console.log('-------------------')

// Exercício 3

const novoCarro = {
    ...carro,
    ligado: false,
    ligar() {
        if (this.ligado === false) {
            this.ligado = true
            console.log('O Carro está ligado!')
            return true
        }
    },
    desligar() {
        if (this.ligado === true) {
            this.ligado = false
            console.log('O Carro está desligado!')
            return false
        }
    },
    obterDetalhes() {
            console.log(`
Marca: ${this.marca}
Modelo: ${this.modelo}
Ano: ${this.ano}
Cor: ${this.cor}
Placa: ${this.placa}
Estado: ${this.ligado === false ? 'Desligado' : 'Ligado'}`); 
    }
}

console.log(novoCarro)
novoCarro.ligar()
console.log(novoCarro)
novoCarro.desligar()
console.log(novoCarro)

// ---

console.log('-------------------')

novoCarro.obterDetalhes()

console.log('-------------------')

// Exercício 4

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

percorrerCarro()

// ---

console.log('-------------------')

const enumeraveis = Object.keys(carro) // nao retorna a propriedade placa

console.log(enumeraveis) // nao retorna a propriedade placa

console.log('-------------------')

console.log(carro.placa) // retorna o valor de placa

// Exercício 5

// já foi trabalhando durante o exercício num todo.

Garanta sua matrícula hoje e ganhe + 2 meses grátis

Continue sua jornada tech com ainda mais tempo para aprender e evoluir

Quero aproveitar agora
1 resposta
solução!

Oi, Maxine! Como vai?

Gostei bastante de como você organizou os métodos no objeto pessoa, ficou bem claro e fácil de entender. Também foi legal ver você aplicando Object.defineProperty para controlar a propriedade placa.

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