0
respostas

Resolução

function exibirLinhas() {
    console.log('=-='.repeat(20));
};

// exercício 1

const pessoa = {
    nome: 'Maxine',
    idade: 22,
    solteiro: true,
    hobbies: ['Cantar', 'Jogar videogames', 'Viajar', 'Escrever']
};

// exercício 1 - parte 2

function mostrarInfoPessoa(objeto) {
    return `Nome: ${objeto.nome}
Idade: ${objeto.idade}
Solteiro: ${objeto.solteiro ? 'Positivo.' : 'Negativo.'}
Hobbies: ${objeto.hobbies.join(', ')}
----------------------------------------
              TIPOS DE DADOS
----------------------------------------
${typeof objeto.nome}
${typeof objeto.idade}
${typeof objeto.solteiro}
${typeof objeto.hobbies}`;
};

console.log(mostrarInfoPessoa(pessoa));

exibirLinhas();

// exercício 2

function adicionarPropriedade(objeto, propriedade, valor) {
    if (!objeto[propriedade]) {
        objeto[propriedade] = [];
    };

    // Se for array, empurra o valor
    if (Array.isArray(objeto[propriedade])) {
        objeto[propriedade].push(valor);
    } else {
        objeto[propriedade] = valor;
    };

    return objeto;
};

adicionarPropriedade(pessoa, 'endereco', {
    rua: 'Rua Marielle Franco',
    numero: 12,
    cep: '55900-000',
    cidade: 'Goiana',
    estado: 'PE',
    complemento: ''
});

console.log(pessoa);

exibirLinhas();

adicionarPropriedade(pessoa, 'endereco', {
    rua: 'Rua Santa Emília',
    numero: 34,
    cep: '55900-000',
    cidade: 'Goiana',
    estado: 'PE',
    complemento: ''
});

console.log(pessoa);

exibirLinhas();

// exercício 3

const pessoas = [
    {nome: 'Jussara', idade: 21, cidade: 'Rio de Janeiro'},
    {nome: 'Maxine', idade: 22, cidade: 'Goiana'},
    {nome: 'Troye', idade: 32, cidade: 'Feira de Santana'}
];

// a)
function mostrarListaPessoas(pessoas) {
    return pessoas.forEach(element => {
        console.log(`Nome: ${element.nome}
Idade: ${element.idade}
Cidade: ${element.cidade}
--------------------------------------------------------`);
    });
};

mostrarListaPessoas(pessoas);

// b)
function adicionarNovaPessoa(array, objeto) {
    return array.push(objeto);
};

adicionarNovaPessoa(pessoas, {nome: 'Júlia', idade: 19, cidade: 'João Pessoa'});

// c)
console.log('');
console.log('---------------------');
console.log('Separando informações');
console.log('---------------------');
console.log('');

mostrarListaPessoas(pessoas);

// d)
function filtrarPorCidade(listas, cidade) {
    let result = listas.filter((lista) => lista.cidade === cidade);
    return result.length === 0 ? 'Não existe.' : result;
};

console.log(filtrarPorCidade(pessoas, 'Goiana'));
console.log('--------------------------------------------------------');
console.log(filtrarPorCidade(pessoas,'Recife'));

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

// exercício 4

const calculadora = {
    soma: function(x, y) {
        return x + y;
    },
    subtracao: function(x, y) {
        return x - y;
    },
    multiplicacao: function(x, y) {
        return x * y;
    },
    divisao: function(x, y) {
        return x / y;
    }
};

// a)
console.log(calculadora.soma(2, 4));
console.log(calculadora.subtracao(6, 3));
console.log(calculadora.multiplicacao(4, 4));
console.log(calculadora.divisao(2, 1));

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

// b)
calculadora.calcularMedia = function(array) {
    let valorInicial = 0;
    return array.reduce((acumulador, valorAtual) => acumulador + valorAtual, valorInicial);
};

const arrayParaExemploSoma = [2, 4, 5, 6];

// c)
console.log(calculadora.calcularMedia(arrayParaExemploSoma));

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

// exercício 5

const contaBancaria = {
    titular: 'Maxine Athos',
    saldo: 2340,
    depositar: function(valor) {
        if (valor > 0) {
            this.saldo += valor;
            return this.saldo;
        } else {
            return 'Insira um valor válido.';
        }
    },
    sacar: function(valor) {
        if (valor <= this.saldo) {
            this.saldo -= valor;
            return this.saldo;
        } else {
            return 'Não é possível realizar um saque com este valor, pois seu saldo é insuficiente.';
        }
    }
};

const cliente = {
    nome: 'Jéssica',
    conta: contaBancaria,
    mostrarSaldo: function() {
        return `Nome: ${this.nome}
Saldo: ${this.conta.saldo}`;
    }
};

console.log(cliente.mostrarSaldo());

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

contaBancaria.depositar(2345);

console.log(cliente.mostrarSaldo());

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

contaBancaria.sacar(1000);

console.log(cliente.mostrarSaldo());