Implementação do código de funções que resolvem problemas com respostas pré-determinadas utilizando a lógica de programação para na análise de cada problema e resposta esperada, facilitando a implementação do código de cada uma das funções.
Habilidades desenvolvidas
- Javascript: Array, loop for, funções, objetos, let, const, arrow functions e template literals;
Implemente a função compareTrue
utilizando somente o operador &&
A função compareTrue
ao receber dois parâmetros booleanos deve:
- Retornar
true
se ambos os valores forem verdadeiros; - Retornar
false
se um ou ambos os parâmetros forem falsos.
Exemplo:
const girafa = true;
const elefante = true;
const macaco = false;
Se a função for chamada com os valores girafa
e elefante
como parâmetro, retorna true
, mas caso seja chamada com os parâmetro macaco
e elefante
retorna false
.
O que será testado:
-
A função
compareTrue
deve retornar false quando receber um parâmetro de valor false e outro de valor true; -
A função
compareTrue
deve retornar false quando receber dois parâmetros de valor false; -
A função
compareTrue
deve retornar true quando receber dois parâmetros de valor true.
Implemente a função calcArea
que retorna o cálculo da área total de um triângulo
A função calcArea
recebe o valor da base (base
) e outro da altura (height
) de um triângulo e retorna o cálculo da sua área.
- Realize o cálculo da área total do triângulo utilizando a fórmula
(base * altura) / 2
.
O que será testado:
-
A função
calcArea
deve retornar o valor 250 quando receber o parâmetro base com o valor 10 e o parâmetro height com o valor 50; -
A função
calcArea
deve retornar o valor 5 quando receber o parâmetrobase
com o valor 5 e o parâmetroheight
com o valor 2; -
A função
calcArea
deve retornar o valor 25.5 quando receber o parâmetrobase
com o valor 51 e o parâmetroheight
com o valor 1.
Implemente a função splitSentence
que divide uma frase de acordo com a quantidade de palavras
A função `splitSentence` recebe uma string como parâmetro e deve retornar um array com as palavras separadas por vírgula.
Exemplo: se a função receber a string 'go Trybe'
, o retorno deverá ser ['go', 'Trybe']
.
O que será testado:
-
A função
splitSentence
deve retornar o valor['go', 'Trybe']
quando receber como parâmetro a string'go Trybe'
; -
A função
splitSentence
deve retornar o valor['vamo', 'que', 'vamo']
quando receber como parâmetro a string'vamo que vamo'
; -
A função
splitSentence
deve retornar o valor['foguete']
quando receber como parâmetro a string'foguete'
.
Implemente a função concatName
que recebe um array de strings e retorna o último item na primeira posição
A função `concatName` recebe um array de strings e deve retornar uma string com o formato `'ÚLTIMO ITEM, PRIMEIRO ITEM`, independente do tamanho do array.
Exemplo:
- Caso o parâmetro passado para a função
concatName
seja o array['Lucas', 'Cassiano', 'Ferraz', 'Paolillo']
, a função deverá retornarPaolillo, Lucas
.
O que será testado:
-
A função
concatName
deve retornar o valor'Paolillo, Lucas'
quando receber como parâmetro o array['Lucas', 'Cassiano', 'Ferraz', 'Paolillo']
; -
A função
concatName
deve retornar'ré, foguete'
quando receber como parâmetro o array['foguete', 'não', 'tem', 'ré']
; -
A função
concatName
deve retornar'captain, captain'
quando receber como parâmetro o array['captain', 'my', 'captain']
.
Implemente a função footballPoints
que calcula a pontuação de um time de futebol em um campeonato a partir do número de vitórias e empates
A função footballPoints
recebe o número de vitórias (wins
) e o número de empates (ties
) e retorna a quantidade de pontos que o time marcou em um campeonato. Para isso, considere que:
wins
: é o número de vitórias e vale 3 pontos;ties
: é o número de empates e vale 1 ponto.
O que será testado:
-
A função
footballPoints
deve retornar o valor50
pontos quando o time tenha 14 vitórias e 8 empates; -
A função
footballPoints
deve retornar o valor5
pontos quando o time tenha 1 vitória e 2 empates; -
A função
footballPoints
deve retornar o valor0
pontos quando o time tenha 0 vitórias e 0 empates.
Implemente a função highestCount
que deverá retornar a quantidade de vezes que o maior número se repete ao receber um array de números.
A função highestCount
deve retornar a quantidade de vezes que o maior número se repete dentro do array.
Por exemplo:
- Caso o parâmetro seja um array com valores
[9, 1, 2, 3, 9, 5, 7]
, a função deverá retornar2
, que é a quantidade de vezes que o número9
(maior número do array) se repete.
O que será testado:
-
A função
highestCount
deve retornar2
quando receber o parâmetro[9, 1, 2, 3, 9, 5, 7]
; -
A função
highestCount
deve retornar1
quando receber o parâmetro[0, 4, 4, 4, 9, 2, 1]
; -
A função
highestCount
deve retornar3
quando receber o parâmetro[0, 0, 0]
.
Implemente a função catAndMouse
que verifica qual gato está mais perto do rato
Imagine que dois gatos estão caçando o mesmo rato. Você precisa verificar qual gato está mais perto de sua presa. Para isso, implemente a função `catAndMouse` que recebe 3 parâmetros do tipo `number` na seguinte ordem:
- `mouse`: representa a posição do rato.
- `cat1`: representa a posição do gato 1;
- `cat2`: representa a posição do gato 2;
-
Calcule as distâncias entre o rato e cada um dos gatos e retorne qual dos felinos está mais próximo do rato:
- Retorne a string
'cat2'
se o gatocat2
estiver mais próximo do rato; - Retorne a string
'cat1'
se o gatocat1
estiver mais próximo do rato; - Retorne a string
'os gatos trombam e o rato foge'
caso os gatos estejam na mesma distância do rato.
- Retorne a string
Exemplo:
-
Caso o gato
cat2
esteja a 2 unidades de distância do rato e ocat1
esteja a 3 unidades, sua função deverá retornar'cat2'
; -
Caso os gatos estejam na mesma distância do rato, a função deverá retornar a string
'os gatos trombam e o rato foge'
.
O que será testado:
-
A função
catAndMouse
deve retornar a string'cat2'
quando receber os parâmetros onde gatocat2
esteja a 2 unidades de distância do rato ecat1
esteja a 3 unidades de distância do rato; -
A função
catAndMouse
deve retornar a string'cat1'
quando receber os parâmetros onde gatocat1
esteja a 6 unidades de distância do rato ecat2
esteja a 12 unidades de distância do rato; -
A função
catAndMouse
deve retornar a string'os gatos trombam e o rato foge'
quando receber os parâmetros onde os gatos estejam na mesma distância do rato.
Implemente a função fizzBuzz
que recebe um array de números e retorna um array de string de acordo com o resultado
A função fizzBuzz
recebe um array de números e para cada número do array é realizada a divisão por 3 e por 5 e de acordo com o resultado, a função deve retornar um array de strings:
- Retorne a string
'fizz'
para cada número do array que seja divisível apenas por 3; - Retorne a string
'buzz'
para cada número do array que seja divisível apenas por 5; - Retorne a string
'fizzBuzz'
para cada número do array que seja divisível por 3 e 5; - Retorne a string
'bug!'
para cada número do array que não seja dividido por 3 nem por 5.
Exemplo: caso o parâmetro seja [2, 15, 7, 9, 45], sua função deverá retornar ['bug!', 'fizzBuzz', 'bug!', 'fizz', 'fizzBuzz']
.
O que será testado:
-
A função
fizzBuzz
deve retornar as strings['bug!', 'fizzBuzz', 'bug!', 'fizz', 'fizzBuzz']
quando receber os parâmetros [2, 15, 7, 9, 45]; -
A função
fizzBuzz
deve retornar as strings['bug!', 'fizz']
quando receber os parâmetros [7, 9]; -
A função
fizzBuzz
deve retornar as strings['fizz', 'buzz']
quando receber os parâmetros [9, 25].
Implemente uma função que codifica e decodifica uma frase, trocando vogais por números ou números por vogais.
Para codificar a frase utilize a função encode
que recebe uma string como parâmetro e deverá trocar todas as vogais minúsculas por números, de acordo com o formato:
a -> 1
e -> 2
i -> 3
o -> 4
u -> 5
Ou seja, caso o parâmetro de encode
seja 'hi there!'
, o retorno deverá ser 'h3 th2r2!'
.
Para decodificar a frase utilize a função decode
que recebe uma string contendo letras e números como parâmetro e deverá trocar todos os números por vogais minúsculas, de acordo com o formato:
1 -> a
2 -> e
3 -> i
4 -> o
5 -> u
Por exemplo, caso o parâmetro de decode
seja 'h3 th2r2!'
, o retorno deverá ser 'hi there!'
.
O que será testado:
- A função
encode
quando receber o parâmetrohello
, deve retornar o valorh2ll4
; - A função
encode
quando receber o parâmetroHow are you today?
deve retornar o valorH4w 1r2 y45 t4d1y?
; - A função
encode
quando receber o parâmetroThis is an encoding test.
deve retornar o valorTh3s 3s 1n 2nc4d3ng t2st.
; - A função
encode
quando receber o parâmetrogo Trybe!
deve retornar o valorg4 Tryb2!
.
Implemente a função techList
que recebe um array e uma string e retorna um array de objetos.
A função techList
recebe dois parâmetros:
- Um array com nomes de tecnologias ;
- Um nome referente ao nome de uma pessoa.
A função deverá retornar:
- 'Vazio!' se não receber parâmetro algum ;
- Um objeto para cada tecnologia do array, com a seguinte estrutura:
{
tech: 'NomeTech',
name: 'nome da pessoa'
}
Por exemplo, se a função recebe os parâmetros ['React', 'Jest', 'HTML', 'CSS', 'JavaScript']
e 'Lucas'
, o retorno deve ser:
[
{
tech: "CSS",
name: "Lucas"
},
{
tech: "HTML",
name: "Lucas"
},
{
tech: "JavaScript",
name: "Lucas"
},
{
tech: "Jest",
name: "Lucas"
},
{
tech: "React",
name: "Lucas"
}
]
O que será testado:
-
A função
techList
deve retornar uma lista de objetos ordenados quando é passada uma lista com 5 tecnologias; -
A função
techList
deve retornar a mensagem de erro'Vazio!'
quando a lista não tiver tecnologias.
Implemente a função generatePhoneNumber
que recebe um array com 11 números e retorna um número de telefone, respeitando parênteses, traços e espaços.
Exemplo: caso o parâmetro da função seja [1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1]
, a função generatePhoneNumber
deverá retornar (12) 34567-8901
.
-
Retorne a frase
'Array com tamanho incorreto.'
se a função receber um array com tamanho diferente de 11; -
Retorne a string
'não é possível gerar um número de telefone com esses valores'
caso algum dos números do array seja menor que 0, maior que 9 ou se repita 3 vezes ou mais.
O que será testado:
-
A função
generatePhoneNumber
deve retornar a string'Array com tamanho incorreto.'
caso o array tenha o tamanho diferente de 11; -
A função
generatePhoneNumber
deve retornar a string'não é possível gerar um número de telefone com esses valores'
caso algum dos números do array seja menor que 0; -
A função
generatePhoneNumber
deve retornar a string'não é possível gerar um número de telefone com esses valores'
caso algum número do array seja maior que 9; -
A função
generatePhoneNumber
deve retornar a string'não é possível gerar um número de telefone com esses valores'
caso algum número do array se repetir 3 vezes ou mais; -
A função
generatePhoneNumber
deve retornar um número de telefone, respeitando parênteses, traços e espaços caso os números do array estejam de acordo com as especificações.
Implemente a função triangleCheck
que verifica se é possível formar um triângulo analisando o comprimento de três linhas
A função triangleCheck
deverá receber os parâmetros lineA
, lineB
e lineC
com o valor do comprimento de três linhas distintas.
- Para que seja possível formar um triângulo, é necessário que a medida de qualquer um dos lados atenda às seguintes condições:
- seja menor que a soma das medidas dos outros dois lados;
E
- seja maior que o valor absoluto (módulo) da diferença entre os outros dois lados.
De olho na dica 👀 Para obter o valor absoluto de um número em JavaScript, pesquise pela função Math.abs
.
- O retorno da sua função deverá ser um booleano.
Exemplo: o retorno de triangleCheck(10, 14, 8)
deverá ser true
.
O que será testado:
-
A função
triangleCheck
deve retornar o valorfalse
quando a medida de qualquer um dos lados seja maior que a soma das medidas dos outros dois lados; -
A função
triangleCheck
deve retornar o valorfalse
quando a medida de qualquer um dos lados seja menor que o valor absoluto da diferença das medidas dos outros dois lados; -
A função
triangleCheck
deve retornar o valortrue
quando a medida de qualquer um dos lados seja menor que a soma das medidas dos outros dois lados e maior que o valor absoluto da diferença entre os outros dois lados.
Implemente a função `hydrate` que recebe uma string e retorna a sugestão de quantos copos de água você deve beber.
// String recebida:
'1 cerveja'
// String retornada:
'1 copo de água'
// String recebida:
'1 cachaça, 5 cervejas e 1 copo de vinho'
// String retornada:
'7 copos de água'
// String recebida:
'1 cachaça, 5 cervejas e 1 copo de vinho'
// String retornada:
'7 copos de água'
-
Para simplificar, considere que a string sempre terá o formato quantidade (em número) + tipo da bebida;
-
O número na frente de cada bebida deve estar entre 1 e 9.
De olho na dica 👀: pesquise por algo similar a get all integers inside a string js
.
O que será testado:
- A função
hydrate
deve retornar a sugestão de quantos copos de água deve-se beber ao receber uma string.
- Antes de começar, você vai precisar ter instalado em sua máquina a ferramenta Git.
- Além disto é bom ter um editor para trabalhar com o código como VSCode.
-
Clone este repositório:
git clone [email protected]:priscilaSartori/project-playground-functions.git
-
Acesse a pasta do projeto no terminal/cmd:
cd project-playground-functions
-
Instale as dependências:
npm install
-
Teste o projeto:
npm test