---
# System prepended metadata

title: Aula 14 - Lógica de Programação

---

# 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
   
}
```