# Aula 14 - Lógica de Programação
## Exercícios para fazer durante a aula e para casa
Questão 1. Faça uma função que verifica se um determinado array contém o elemento “academy”
```javascript=
const array = ['cubos', 'academy', 'dev']
const includesElement = (array) => {
return array.includes("academy")
}
```
Questão 2. Faça uma função que indica o índice em que se encontra o elemento “academy”
```javascript=
const array = ['cubos', 'academy', 'dev']
const indexOfElement = (array) => {
return array.indexOf("academy")
}
```
Questão 3. Utilizando o método splice(), faça uma função que filtra uma lista, removendo todos elementos que tem mais de 5 caracteres.
```javascript=
const array = ['cubos', 'academy', 'dev']
const filterList = (array) => {
for(let i = array.length - 1; i >= 0; i--){
if(array[i].length > 5){
array.splice(i, 1)
}
}
return array
}
```
Questão 4. Faça uma função que transforma um array de opções em um texto mas adequado, conforme a tabela abaixo:
Dica: Lembre-se de que, além de indexOf() existe também a função lastIndexOf(), que retorna o índice da última ocorrência de um item.
```javascript=
const paises = ['Brasil', 'Espanha', 'Argentina', 'Mexico']
const textTransform = (array) => {
let newText = array.join(", ")
let index = newText.lastIndexOf(",");
newText = newText.substring(0,index)
newText += ` ou ${array[array.length-1]}`
return newText
}
```
## Exercícios de casa
Questão 5. Faça uma função que coloca um array de números em ordem crescente.
```javascript=
const numbers = [5, 2, 3, 0, 11, 7]
const orderArray = (array) => {
return array.sort(function(a, b){return a - b})
}
```
Questão 5. Você tem 30 segundos para modificar a questão anterior de modo que os números fiquem em ordem decrescente.
```javascript=
const numbers = [5, 2, 3, 0, 11, 7]
const orderArrayReverse = (array) => {
return array.sort(function(a, b){return a - b}).reverse()
}
```
Questão 6. Faça uma função que formata um telefone para que fique apenas numérico, com 9 dígitos.
```javascript=
const phone = "+557199932-1232"
const formatPhone = (number) => {
return number.replace(/[^0-9]+/g, "").substr(-9, number.length)
}
```
Questão 7. Faça uma função que verifique se um email é válido. Analise os exemplos abaixo para te auxiliar no raciocínio.
```javascript=
const email = "jose@cubos.academy.br"
const email = (email) => {
let emailVerify = email.trim()
if(emailVerify.length < 3) return false
let indexAt = emailVerify.indexOf("@")
if(indexAt === -1) return false
let clippingEmail = emailVerify.substr(indexAt, emailVerify.length)
let indexDot = clippingEmail.indexOf(".")
if(indexDot === -1) return false
clippingEmail = clippingEmail.substr(indexDot, clippingEmail.length)
if(clippingEmail.length < 3) return false
return true
}
```