Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
95 changes: 73 additions & 22 deletions challenge-04/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
Expand All @@ -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,
Expand All @@ -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
```