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
103 changes: 81 additions & 22 deletions challenge-04/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
Expand All @@ -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,
Expand All @@ -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
```