diff --git a/challenge-04/README.md b/challenge-04/README.md index ad0fb2f1b2..7669265e9a 100644 --- a/challenge-04/README.md +++ b/challenge-04/README.md @@ -7,15 +7,34 @@ um único parâmetro como argumento. Essa função deve retornar `true` se o equivalente booleano para o valor passado no argumento for `true`, ou `false` para o contrário. */ -? +var isTruthy = function (value){ +return !!value ? true : false; +} + // Invoque a função criada acima, passando todos os tipos de valores `falsy`. -? +isTruthy(null) // false +isTruthy(undefined) // false +isTruthy(NaN) // false +isTruthy(-0) // false +isTruthy(0) // false +isTruthy('') // false +isTruthy("") // false /* Invoque a função criada acima passando como parâmetro 10 valores `truthy`. */ -? +isTruthy(2.5) +isTruthy('ABC') +isTruthy("ABC") +isTruthy(function name(params) { +}) +isTruthy([]) +isTruthy({}) +isTruthy(true) +isTruthy(-1) +isTruthy(1) +isTruthy("Ciranda Cirandinha") /* Declare uma variável chamada `carro`, atribuindo à ela um objeto com as @@ -29,35 +48,54 @@ seguintes propriedades (os valores devem ser do tipo mostrado abaixo): - `assentos` - Number - cinco por padrão - `quantidadePessoas` - Number - zero por padrão */ -? +var carro = { + marca:"BMW", + modelo:"X70", + placa:"OCS-2386", + ano:2020, + cor:"Verde Limão", + quantasPortas: 4, + assentos:5, + quantidadePessoas: 0 +} /* Crie um método chamado `mudarCor` que mude a cor do carro conforme a cor passado por parâmetro. */ -? +carro.mudaCor = function (novaCor){ + carro.cor = novaCor; +} /* Crie um método chamado `obterCor`, que retorne a cor do carro. */ -? +carro.obterCor = function(){ + return carro.cor; +} /* Crie um método chamado `obterModelo` que retorne o modelo do carro. */ -? +carro.obterModelo = function (){ + return carro.modelo; +} /* Crie um método chamado `obterMarca` que retorne a marca do carro. */ -? +carro.obterMarca = function(){ + return carro.marca; +} /* Crie um método chamado `obterMarcaModelo`, que retorne: "Esse carro é um [MARCA] [MODELO]" Para retornar os valores de marca e modelo, utilize os métodos criados. */ -? +carro.obterMarcaModelo= function(){ + return "Esse carro é um "+ carro.obterMarca() + " " + carro.obterModelo(); +} /* Crie um método que irá adicionar pessoas no carro. Esse método terá as @@ -75,7 +113,28 @@ mostrar quantos assentos ainda podem ser ocupados, com a frase: - Se couber somente mais uma pessoa, mostrar a palavra "pessoa" no retorno citado acima, no lugar de "pessoas". */ -? + +carro.adicionarPessoas = function (numeroPessoas) { + var totalPessoas = carro.quantidadePessoas + numeroPessoas; + var quantasPessoasCabem = carro.assentos - carro.quantidadePessoas; + var pluralOuSingular = quantasPessoasCabem === 1 ? "pessoa" : "pessoas"; + + if ( + carro.quantidadePessoas === carro.assentos && + totalPessoas >= carro.assentos + ) { + return "O carro já está lotado!"; + } + + if (totalPessoas > carro.assentos) { + return ( + "Só cabem mais " + quantasPessoasCabem + " " + pluralOuSingular + " !" + ); + } + + carro.quantidadePessoas += numeroPessoas; + return "Já temos " + carro.quantidadePessoas + " pessoas no carro!"; +}; /* Agora vamos verificar algumas informações do carro. Para as respostas abaixo, @@ -85,38 +144,38 @@ retornar algum valor. Qual a cor atual do carro? */ -? +carro.obterCor() // "Verde Limão" // Mude a cor do carro para vermelho. -? +carro.mudaCor("Vermelho") // undefined // E agora, qual a cor do carro? -? +carro.obterCor() // 'Vermelho' // Mude a cor do carro para verde musgo. -? +carro.mudaCor("verde musgo") // undefined // E agora, qual a cor do carro? -? +carro.obterCor() // 'verde musgo' // Qual a marca e modelo do carro? -? +carro.obterMarcaModelo() // 'Esse carro é um BMW X70' // Adicione 2 pessoas no carro. -? +carro.adicionarPessoas(2) // 'Já temos 2 pessoas no carro!' // Adicione mais 4 pessoas no carro. -? +carro.adicionarPessoas(4) // 'Só cabem mais 3 pessoas !' // Faça o carro encher. -? +carro.adicionarPessoas(3) // 'Já temos 5 pessoas no carro!' // Tire 4 pessoas do carro. -? +carro.adicionarPessoas(-4) // 'Já temos 1 pessoas no carro!' // Adicione 10 pessoas no carro. -? +carro.adicionarPessoas(10) // 'Só cabem mais 4 pessoas !' // Quantas pessoas temos no carro? -? +carro.quantidadePessoas // 1 ```