� comum durante o desenvolvimento de um software surgir a necessidade de fazer itera��es em um Array, para isso o JavaScript conta com uma s�rie de m�todos para facilitar este tipo de tarefa sem a necessidade de um la�o for, como veremos a seguir.
Na pr�tica
Exemplo 1
O m�todo filter serve para filtrar em um Array apenas os resultados que cumpram com determinada condi��o esperada. Ele pode ser aplicado em uma lista de autom�veis para filtrar apenas os que s�o da marca Renault, como no exemplo abaixo:
const listaCarros = [
{ id: 1, modelo: 'Corsa', marca: 'Chevrolet', preco: 18.000 },
{ id: 2, modelo: 'Punto', marca: 'Fiat', preco: 12.000 },
{ id: 3, modelo: 'Gol', marca: 'Volkswagen', preco: 14.000 },
{ id: 4, modelo: 'Saveiro', marca: 'Volkswagen', preco: 20.000 },
{ id: 5, modelo: 'Uno', marca: 'Fiat', preco: 12.000 },
{ id: 6, modelo: 'Onix', marca: 'Chevrolet', preco: 25.000 },
{ id: 7, modelo: 'Palio', marca: 'Fiat', preco: 13.000 },
{ id: 8, modelo: 'Prisma', marca: 'Chevrolet', preco: 15.000 },
{ id: 9, modelo: 'Logan', marca: 'Renault', preco: 15.000 }
]
const carroFiltrado = listaCarros.filter(carro => carro.marca === 'Renault')
console.log(carroFiltrado) // [ { id: 9, modelo: 'Logan', marca: 'Renault' } ]Perceba que definimos como condi��o para o filtro carro.marca ser igual a Renault, com isso nosso novo Array armazenado em carroFiltrado passou a ter apenas o item com id 9.
Exemplo 2
Agora considere a necessidade de filtrar o mesmo Array do exemplo 1, por�m filtrando apenas o item que tenha a marca Volkswagen e modelo igual a Saveiro - esta tarefa pode ser feita novamente com o filter como vemos abaixo:
const carroFiltrado = listaCarros.filter(carro =>
carro.marca === 'Volkswagen' &&
carro.modelo === 'Saveiro'
)
console.log(carroFiltrado) // [ { id: 4, modelo: 'Saveiro', marca: 'Volkswagen' } ]Perceba que o filtro continua simples, a �nica mudan�a foi a adi��o de uma segunda condi��o para poder encontrar o resultado.
Exemplo 3
O m�todo map percorre cada item de um Array e retorna um novo Array ao final de sua execu��o.
Array.prototype.map((value: any, index: number, array: Array<any>) => item): Array<any>Para facilitar o entendimento desse m�todo temos o exemplo abaixo onde utilizamos o map para percorrer uma lista de n�meros e multiplicar por 5 cada n�mero deste Array:
const lista = [ 1, 5, 8, 4 ]
const resultado = lista.map(item => item * 5)
console.log(resultado) // [ 5, 25, 40, 20 ]Exemplo 4
reduce() permite concatenar os elementos do Array a partir de seus elementos.
Array.reduce((anterior: any, atual: any) => concatenacao: any): anyConsidere o Array de carros que utilizamos no exemplo do filter e que seja necess�rio somar o pre�o de todos os autom�veis para saber o total em estoque. Para isso podemos utilizar o reduce como no exemplo abaixo:
const sum = listaCarros.reduce((previous, current) => previous + current.preco, 0)
console.log(sum) // 144Exemplo 5
O m�todo includes verifica se um Array possu� determinado elemento e retorna um booleano.
Array<item>.includes(searchElement: item): booleanO m�todo includes pode ser ser aplicado em um Array para pesquisar a exist�ncia de um item especifico, abaixo uma ilustra��o dessa situa��o:
const items = [ 10, 20, 30 ]
console.log(
items.includes(10), // true
items.includes(50), // false
items.includes(20), // true
)Compatibilidade
| Node.JS ( V8) | 6.4.0 |
| Safari ( WebKit) | 11.1 |
| Chrome ( V8) | 68 |
| Microsoft Edge ( ChakraCore) | 17 |
| Firefox ( Gecko) | 61 |
Nota: O Opera utiliza atualmente grande parte do c�digo do Chrome como base para o seu pr�prio desenvolvimento e por isso ele n�o � mencionado nesta listagem.