diff --git a/challenge-04/README.md b/challenge-04/README.md index ad0fb2f1b2..57788ef07d 100644 --- a/challenge-04/README.md +++ b/challenge-04/README.md @@ -7,15 +7,33 @@ 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 (x) { + return !!x +} // Invoque a função criada acima, passando todos os tipos de valores `falsy`. -? +isTruthy(0) +isTruthy(undefined) +isTruthy(NaN) +isTruthy(null) +isTruthy(-0) +isTruthy('') +isTruthy("") +isTruthy(false) /* Invoque a função criada acima passando como parâmetro 10 valores `truthy`. */ -? +isTruthy(1) +isTruthy('oba') +isTruthy(true) +isTruthy(3) +isTruthy(4) +isTruthy(5) +isTruthy(6) +isTruthy(7) +isTruthy(8) +isTruthy(9) /* Declare uma variável chamada `carro`, atribuindo à ela um objeto com as @@ -29,35 +47,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: 'Toyota'; + modelo: 'Sla'; + placa: 'lelele'; + ano: 2020; + cor: 'azul'; + quantasPortas: 2; + assentos: 5; + quantidadePessoas: 0; +} /* Crie um método chamado `mudarCor` que mude a cor do carro conforme a cor passado por parâmetro. */ -? +carro.mudarCor = 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 +112,21 @@ 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(x) { + var espacoSobrando = carro.assentos - carro.quantidadePessoas + + if (espacoSobrando === 0){ + return 'O carro já está lotado!'; + } + else if (x > espacoSobrando) { + var plural = espacoSobrando === 1 ? 'pessoa' : 'pessoas'; + return 'Só cabem mais ' + espacoSobrando + ' ' + plural + '!'; + } + else { + carro.quantidadePessoas += x; + return 'Já temos ' + carro.quantidadePessoas + ' pessoas no carro!'; + } +} /* Agora vamos verificar algumas informações do carro. Para as respostas abaixo, @@ -85,38 +136,38 @@ retornar algum valor. Qual a cor atual do carro? */ -? +carro.obterCor() //azul // Mude a cor do carro para vermelho. -? +carro.mudarCor('vermelho') // E agora, qual a cor do carro? -? +carro.obterCor() //vermelho // Mude a cor do carro para verde musgo. -? +carro.mudarCor('verde musgo') // E agora, qual a cor do carro? -? +carro.obterCor() //verde musgo // Qual a marca e modelo do carro? -? +carro.marca() //toyota // Adicione 2 pessoas no carro. -? +carro.adicionarPessoas(2) //Já temos [X] pessoas no carro! // Adicione mais 4 pessoas no carro. -? +carro.adicionarPessoas(4) //O carro já está lotado! // Faça o carro encher. -? +carro.adicionarPessoas(3) //Já temos 5 pessoas no carro! // Tire 4 pessoas do carro. -? +carro.quantidadePessoas -= 4 // Adicione 10 pessoas no carro. -? +carro.adicionarPessoas(10) //Só cabem mais 4 pessoas! // Quantas pessoas temos no carro? -? +//1 ```