‼ Antes de começar a desenvolver
-
Clone o repositório
- Use o comando:
git clone git@github.com:UnifelDesenvolvimentoWeb/VanillaChallengesJS.git
- Use o comando:
-
Entre na pasta do repositório que você acabou de clonar:
cd VanillaChallengesJS
-
Instale as dependências
- Para isso, use o seguinte comando:
npm install
- Para isso, use o seguinte comando:
-
Crie uma branch a partir da branch
master
- Verifique se você está na branch
master
- Exemplo:
git branch
- Exemplo:
- Se não estiver, mude para a branch
master
- Exemplo:
git checkout master
- Exemplo:
- Agora, crie uma branch para qual você vai submeter os
commits
do seu projeto:- Você deve criar uma branch no seguinte formato:
nome-de-usuario-nome-do-projeto
- Exemplo:
git checkout -b arthur-alves-vanillaChallenges
- Você deve criar uma branch no seguinte formato:
- Verifique se você está na branch
-
Adicione as mudanças ao stage do Git e faça um
commit
-
Verifique que as mudanças ainda não estão no stage
- Exemplo:
git status
(os arquivos no diretóriosrc
devem aparecer em vermelho)
- Exemplo:
-
Adicione o novo arquivo ao stage do Git
- Exemplo:
git add .
(adicionando todas as mudanças - que estavam em vermelho - ao stage do Git) git status
(deve aparecer listado os arquivos do diretóriosrc
em verde)
- Exemplo:
-
Faça o
commit
inicial- Exemplo:
git commit -m 'iniciando o projeto.'
(fazendo o primeiro commit)
- Exemplo:
-
git status
(deve aparecer uma mensagem tipo nothing to commit )
-
-
Adicione a sua branch com o novo
commit
ao repositório remoto- Usando o exemplo anterior:
git push -u origin arthur-alves-vanillaChallenges
- Usando o exemplo anterior:
-
Crie um novo
Pull Request
(PR)- Vá até a página de Pull Requests do repositório no GitHub
- Clique no botão verde "New pull request"
- Clique na caixa de seleção "Compare" e escolha a sua branch com atenção
- Coloque um título para o seu Pull Request
- Exemplo: "Cria função x"
- Clique no botão verde "Create pull request"
- Adicione uma descrição para o Pull Request e clique no botão verde "Create pull request"
- Não se preocupe em preencher mais nada por enquanto!
- Volte até a página de Pull Requests do repositório e confira que o seu Pull Request está criado.
🛠 Testes
Todos os requisitos do projeto serão testados automaticamente por meio do Jest.
Para rodar o avaliador automático localmente no seu projeto, execute um dos comandos abaixo:
Para executar todos os testes utilize:
npm test
ou
Para executar um arquivo de teste específico, utilize npm test nomeDoArquivoDeTeste
:
npm test taxesCalcul
Implemente a função printElements
escreva um código que imprima todos os elementos de um array.
A função printElements
recebe um arrray por parâmetro e imprime um por um dos elementos do aray:
Implemente a função biggerNumber
que retorna o maior númeo dentro de um array
A função biggerNumber
recebe um array por parâmetro.
O que será testado: Exemplo
-
Retorna o valor 20 quando a função é chamada com o parâmetro [1, 6, 8, 5, 19, 20, 10];
-
Retorna o valor 5 quando a função é chamada com o parâmetro [1, 5, 3, 2];
-
Retorna o valor 10 quando a função é chamada com o parâmetro [5, 8, 4, 10];
Implemente a função ignoreFirstAndLastElement
e escreva um código que imprima todos os elementos de um array, exceto o primeiro e o último
A função `ignoreFirstAndLastElement` recebe um array como parâmetro e deve imprimir todos os elementos menos o primeiro e o ultimo.
Se o array tiver um tamanho menor que 3 deve imprimir a seguinte mensagem 'Tamanho do array inválido'
Exemplo: se a função receber o array [1, 5, 10, 12]
, o retorno deverá ser [5, 10]
.
O que será testado:
-
Retorne o valor
['JavaScript']
se a função receber['HTML', 'JavaScript', 'CSS']
; -
Retorne o valor
[10, 5, 20]
se a função receber[8, 10, 5, 20, 6]
; -
Retorne o valor
'Tamanho do array inválido'
se a função receber[4, 7]
.
Escreva um código que inverta a ordem dos elementos de um array.
Implemente a função invertElementsArray
que recebe um array e retorna esse array invertido
Exemplo:
- Caso o parâmetro passado para a função
invertElementsArray
seja o array[8, 4, 60, 15]
, a função deverá retornar[15, 60, 4, 8]
.
O que será testado:
-
Retorne
[10, 7, 23]
quando o parâmetro passado na funcão concatName seja[23, 7, 10]
; -
Retorne
['uva', 'banana', 'maça']
quando o parâmetro passado na funcão concatName seja['maça', 'banana', 'uva']
;
Implemente a função invertString
que inverte uma string
A função invertString
recebe uma string por parâmetro e retorna essa string invertida
Exemplo:
O que será testado:
-
Retorne
etrevni
quando a string passada por parâ forinverte
; -
Retorne
olleh
quando a string passada por parâ forhello
;
Implemente a função noDuplicates
e escreva um código que receba um array de números por parâmetro e retorne o array com os elementos duplicados removidos.
Por exemplo:
- Caso o parâmetro seja um array com valores
[9, 1, 2, 3, 9, 2, 7]
, a função deverá retornar[9, 1, 2, 3, 7]
O que será testado:
-
Retorne
[9, 2, 3, 1]
quando o parâmetro passado na função noDuplicates seja[9, 1, 2, 3, 9, 1, 3]
; -
Retorne
[0, 4, 9, 1]
quando o parâmetro passado na função noDuplicates seja[0, 4, 4, 4, 9, 1]
; -
Retorne
[0]
quando o parâmetro passado na função noDuplicates seja[0, 0, 0]
.
Implemente a função taxesCalcul
que recebe por parâmetro o valor bruto (do tipo number) do salário e calcula o valor líquido.
Utilize if...else para escrever um código que, dado um salário bruto, calcule o salário líquido a ser recebido. Uma pessoa que trabalha de carteira assinada no Brasil tem descontados de seu salário bruto o INSS (Instituto Nacional do Seguro Social) e o IR (Imposto de Renda).
A notação para um salário de R$1.500,10, por exemplo, deve ser 1500.10.
Para as faixas de impostos, use as seguintes referências:
INSS Salário bruto até R$ 1.556,94: alíquota de 8%; Salário bruto de R$ 1.556,95 a R$ 2.594,92: alíquota de 9%; Salário bruto de R$ 2.594,93 a R$ 5.189,82: alíquota de 11%; Salário bruto acima de R$ 5.189,82: alíquota máxima de R$ 570,88. IR Até R$ 1.903,98: isento de imposto de renda; De R$ 1.903,99 a 2.826,65: alíquota de 7,5% e parcela de R$ 142,80 a deduzir do imposto; De R$ 2.826,66 a R$ 3.751,05: alíquota de 15% e parcela de R$ 354,80 a deduzir do imposto; De R$ 3.751,06 a R$ 4.664,68: alíquota de 22,5% e parcela de R$ 636,13 a deduzir do imposto; Acima de R$ 4.664,68: alíquota de 27,5% e parcela de R$ 869,36 a deduzir do imposto. O cálculo deve ser o demonstrado a seguir O salário bruto está entre R$ 2.594,93 e R$ 5.189,82, então sua alíquota para o INSS é de 11%. O INSS será 11% de R$ 3.000, ou seja, R$ 330,00.
Para descobrir o salário-base, subtraia do salário bruto a alíquota do INSS: R$ 3.000,00 - R$ 330,00 = R$ 2.670,00.
Para calcular o valor do IR, considera-se um salário-base (já deduzido o INSS) entre R$ 1.903,99 e 2.826,65, em que a alíquota é de 7.5%, com parcela de R$ 142,80 a deduzir do imposto. Assim, tem-se:
R$ 2.670,00 - salário com INSS já deduzido; 7.5% - alíquota de imposto de renda, que representa um desconto de R$ 200,25; R$ 142,80 - parcela a ser deduzida do imposto de renda. Para obter o valor do imposto de renda, calcula-se: R$ 200,25 (que representa 7,5% de R$ 2.670,00) - R$ 142,80 (dedução do imposto de renda) = R$ 57,45.
Para obter o salário líquido, calcula-se: R$ 2.670,00 - R$ 57,45 (salário-base - valor IR) = R$ 2.612,55.
Resultado: Salário: R$ 2612.55.
Exemplo:
O que será testado:
-
A função recebe um valor do tipo number por parâmetro
-
Retorna
'Salário: R$ 2612.55.'
caso o parâmeto passado seja 3000; -
Retorna
'Salário: R$ 1820'
caso o parâmeto passado seja 2000; -
Retorna
'Salário: R$ 3532.1.'
caso o parâmeto passado seja 4200;
Implemente a função formatPhoneNumber
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 formatPhoneNumber
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:
-
Retorne a string 'Array com tamanho incorreto.' caso o array tenha o 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;
-
Retorne 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;
-
Retorne 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;
-
Retorne 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 getArrayNoIntervalo
que recebe um array e retorna um objeto com duas key, uma delas é arrayNoIntervalo que deve conter um array com o intervalo encontrado e a outa é o contador que deve conter quantos números contem nesse intervalo
A função recebe 3 parâmetos, o primeiro é um array
de números, o segundo é um número que representa o inicio
do intervalo selecionado, o terceiro representa o fim
do intervalo selecionado
Exemplo: caso o parâmetro da função seja [1, 2, 3, 4, 5, 1], 2, 4
, a função getArrayNoIntervalo
deverá retornar { arrayNoIntervalo: [2, 3, 4], contador: 3 };
.
O que será testado:
-
Retorne o objeto
{ arrayNoIntervalo: [2, 3, 4], contador: 3 };
se a essa função for chamada com esses parâmetrosgetArrayNoIntervalo([1, 2, 3, 4, 5, 1], 2, 4)
; -
Retorne o objeto
{ arrayNoIntervalo: [20, 63, 80], contador: 3 };
se a essa função for chamada com esses parâmetrosgetArrayNoIntervalo([20, 14, 5, 6, 9, 63, 80, 120], 20, 80)
; -
Retorne o objeto
{ arrayNoIntervalo: [15, 21, 30], contador: 3 };
se a essa função for chamada com esses parâmetrosgetArrayNoIntervalo([15, 4, 6, 9, 21, 30, 7], 15, 30)
;