Manipulando array com javascript — parte 1

Hermando Thiago
4 min readJan 12, 2023

--

Seja frontend, backend ou mobile, a manipulação de array é uma habilidade bastante importante para qualquer programador javascript/typescript. Percebendo a importância dessa habilidade, decidi escrever esse post compartilhando os principais métodos usados para manipular arrays e como podemos usá-los nas nossas aplicações.

Inserindo e removendo dados no array

Para começar, vamos aprender os métodos para inserir e remover elementos de um array.

push()

Adiciona um elemento no final do array.

let numbersList = [1, 2, 3, 4]

numbersList.push(5) // -> [1, 2, 3, 4, 5]

pop()

Remove o ultimo elemento do array.

let numberList = [1, 2, 3, 4, 5]

numberList.pop() // -> [1, 2, 3, 4]

unshift()

Adiciona o elemento no inicio do array.

let numbers = [2, 3, 4]

numbers.unshift(1) // -> [1, 2, 3, 4]

shift()

Remove o primeiro elemento do array.

let numbers = [1, 2, 3, 4, 5]

numbers.shift() // -> [2, 3, 4, 5]

concat()

O método concat() serve para adicionar elementos em um array sem alterar o array original, criando assim um novo array.

Podemos adicionar elementos no inicio, ou no fim do array, depende de como usaremos o método.

const countries = ['Brazil', 'Canada', 'Argentina']

const newCountries = [].concat(countries, 'Chile')

console.log(newCountries) // -> ['Brazil', 'Canada', 'Argentina', 'Chile']

Também podemos usar o método concat() para unir dois ou mais arrays em um novo array.

const europe = ['Germany', 'France']

const southAmerica = ['Brazil', 'Argentina', 'Chile']

const countries = [].concat(europe, southAmerica)

console.log(countries) // -> ['Germany', 'France', 'Brazil', 'Argentina', 'Chile']

splice()

Vimos como adicionar elementos no inicio e no final do array, agora vamos aprender como adicionar um novo elemento em qualquer posição do array.

O método splice() consegue adicionar, remover ou substituir um elemento específico de um array. Com a seguinte estrutura:

array.splice(posiçao_do_elemento, 0, novo_elemento...)

Pegando um array com os países da América do Sul, queremos colocar o Peru no lugar de índice 1 no array, neste caso, faríamos assim:

const southAmerica = ['Brazil', 'Argentina', 'Chile']

southAmerica.splice(1, 0, 'Peru')

console.log(southAmerica) // -> ['Brazil', 'Peru', 'Argentina', 'Chile']

Para adicionar em qualquer outro lugar do array, bastaria mudar o parâmetro de 1 para o índice desejado. Também conseguimos adicionar mais de um elemento apartir de um índice, como por exemplo:

const southAmerica = ['Brazil', 'Argentina', 'Chile']

southAmerica.splice(1, 0, 'Peru', 'Uruguai')

console.log(southAmerica) // -> ['Brazil', 'Peru', 'Uruguai', 'Argentina', 'Chile']

Filtrando e selecionando dados no array

filter()

Esse método irá criar um novo array com os dados do array antigo que atendam a uma condicional. Muito utilizado em filtro de produtos quando quisemos visualizar somente os produtos que atendam as condições que queremos.

const numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

const evenNumbers = numbers.filter((number) => number % 2 === 0)

console.log(evenNumbers) // -> [ 2, 4, 6, 8, 10 ]

const languages = ["Dart", "Java", "Javascript", "Python", "Rust"]

const languagesIncludesJava = languages.filter((language) =>
language.includes("Java")
)

console.log(languagesIncludesJava) // -> [ 'Java', 'Javascript' ]

Também conseguimos filtrar arrays de objetos.

const users = [
{
name: "Hermando Thiago",
age: 21,
},
{
name: "Maria Lorena",
age: 17,
},
{
name: "Francisco Hernandes",
age: 18,
},
]

const overAgeUsers = users.filter((user) => user.age >= 18)

console.log(overAgeUsers) // -> [{ name: 'Hermando Thiago', age: 21 }, { name: 'Francisco Hernandes', age: 18 }]

find()

Esse método retorna o primeiro elemento que atende a uma função com condicional, caso não exista um elemento que atenda ao requisito, irá retornar undefined.

const numbers = [1, 2, 3, 4, 5, 6]

const evenNumbers = numbers.find((number) => number % 2 === 0)

console.log(evenNumbers) // -> 2

const numberGreateThanTen = numbers.find((number) => number > 10)

console.log(numberGreateThanTen) // -> undefined

findIndex()

Esse método é bem parecido com o método find(), mas no lugar de retornar o elemento, retorna o índice do elemento que atende à condicional. Caso não exista esse elemento, retorna -1.

const numbers = [1, 2, 3, 4, 5, 6]

const indexFirstEvenNumber = numbers.find((number) => number % 2 === 0)

console.log(indexFirstEvenNumber) // -> 1

const indexNumberGreateThanTen = numbers.find((number) => number > 10)

console.log(indexNumberGreateThanTen) // -> -1

indexOf()

O método indexOf() tem o mesmo objetivo que o método findIndex(), só com algumas diferenças, no lugar de passar uma função com a condicional, passamos direto o elemento que estamos procurando, e temos um segundo parâmetro que é opcional, sendo de qual index começaremos a fazer a busca.

const animals = ['ant', 'bison', 'camel', 'duck', 'bison'];

console.log(animals.indexOf('bison')) // -> 1

// Começando a busca do índice 2
console.log(animals.indexOf('bison', 2)) // -> 4

console.log(animals.indexOf('giraffe')) // -> -1

E é isso pessoal, espero que tenham gostado do post e que tenham aprendido muito com os exemplos que dei. O javascript tem vários métodos de array, de forma que a o post iria ficar gigante se eu trouxesse todos aqui, então vou escrever um segundo post com métodos um pouco mais complexos e com exemplos no dia a dia, como ordenação, operações com array e mais alguns tópicos importantes.

Muito obrigado pela atenção :)

Minhas redes sociais:

linkedin: https://www.linkedin.com/in/hermando-thiago/

github: https://github.com/HermandoThiago

email: hermandodev@gmail.com

--

--