1
resposta

Desafio Finalizado Parte 2 (Sara)

// Crie um arquivo chamado metodosObjeto.js para realizar este exercício.
import {carro} from './percorrendo_obj.js' ;

carro.ligado = false,
carro.ligar = function(){
    if(this.ligado){
        console.log('O carro já está ligado');
    }else{
        this.ligado = true;
        console.log('O carro está ligado')
    }
};

carro.desligar = function(){
    if(this.ligado){
        this.ligado = false;
        console.log('O carro foi desligado');
    }else {
        console.log('O carro já está desligado');
    }
};

// Um método que retorna uma string contendo todos os detalhes do carro (marca, modelo, ano, cor, estado de ligado/desligado).

carro.obterDetalhes = function(){
    console.log(`Carro da marca ${carro.marca}do modelo ${carro.modelo}, do ano ${carro.ano}. O carro está ${carro.ligado ? 'ligado' : 'desligado'} `);
}

carro.ligar();
carro.obterDetalhes();

carro.desligar();
carro.obterDetalhes();

//  adicione uma nova propriedade chamada placa representando a placa do veículo. Defina a propriedade placa como não enumerável

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

// Utilize um loop for...in para percorrer as propriedades do objeto carro e imprima no console apenas as propriedades enumeráveis.

for (let chave in carro){
    const tipo = typeof carro[chave];
        if (tipo !== 'object' && tipo !== 'function'){
            const texto = `A chave ${chave}, tem o valor ${carro[chave]}`;
                console.log(texto);
        };
};

// Utilize o método Object.keys() para obter um array contendo apenas as chaves enumeráveis do objeto carro e imprima no console esse array.

const arrEnumeravel = Object.keys(carro);
console.log(arrEnumeravel);

// Tente acessar a propriedade placa diretamente usando carro.placa e imprima no console o resultado obtido.

console.log(`A placa do carro é: ${carro.value}`);

// Novo objeto chamado carroNovo para representar as informações de um novo carro.

const novoCarro = {
    marca : 'Chevrolet',
    modelo : 'Suburban',
    ano : 1911,
    cor : 'Preto'
};

console.table(novoCarro);

// Utilize o operador de espalhamento (...) para criar um novo objeto chamado carroComNovosDetalhes 
// que herde todas as propriedades do objeto carro e adicione as propriedades do objeto carroNovo.

const carroComNovosDetalhes  = {... carro, ... novoCarro};
console.table(carroComNovosDetalhes);

// Modifique o valor de uma propriedade no objeto carroComNovosDetalhes e imprima novamente o objeto no console para confirmar as alterações.

carroComNovosDetalhes.cor = 'Branco';

console.table(carroComNovosDetalhes);
1 resposta

Oi, Sara! Como vai?

Agradeço por compartilhar seu código.

Gostei de como você estruturou os métodos ligar, desligar e obterDetalhes. Eles deixam o objeto carro mais dinâmico e próximo do uso real.

Uma dica interessante para o futuro é usar o método Object.values(), que retorna todos os valores enumeráveis de um objeto.


const pessoa = { nome: 'Joao', idade: 25, cidade: 'Recife' };

const valores = Object.values(pessoa);

console.log(valores);

Esse código mostra no console apenas os valores das propriedades do objeto.

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