Os métodos de iteração de matriz operam em todos os itens da matriz.
Array.forEach ()
O método forEach() chama uma função (uma função de retorno de chamada) uma vez para cada elemento da matriz.
var txt = "";
var numeros = [45, 4, 9, 16, 25];
numeros.forEach(
function(value, index, array) {
txt = txt + value + "<br>";
});
A função usa 3 argumentos: o valor do item, o índice do item e a própria matriz.
O exemplo acima usa apenas o parâmetro value. O exemplo pode ser reescrito para:
var txt = "";
var numeros = [45, 4, 9, 16, 25];
numeros.forEach(
function(value) {
txt = txt + value + "<br>";
});
Array.map ()
O método map() cria uma nova matriz executando uma função em cada elemento da matriz, não executa a função para elementos da matriz sem valores e não altera a matriz original.
Este exemplo multiplica cada valor da matriz por 2:
var numeros = [45, 4, 9, 16, 25];
var numbers2 = numeros.map(minhaFuncao);
function minhaFuncao(value, index, array) {
return value * 2;
}
A função usa 3 argumentos: o valor do item, o índice do item e a própria matriz.
Quando uma função de retorno de chamada usa apenas o parâmetro value, os parâmetros index e array podem ser omitidos:
var numeros = [45, 4, 9, 16, 25];
var numbers2 = numeros.map(minhaFuncao);
function minhaFuncao(value) {
return value * 2;
}
Array.filter ()
O método filter() cria uma nova matriz com elementos da matriz que passam no teste.
Este exemplo a seguir cria uma nova matriz a partir de elementos com um valor maior que 18.
var numeros = [45, 4, 9, 16, 25];
var over18 = numeros.filter(
function(value, index, array) {
return value > 18;
}
A função usa 3 argumentos: o valor do item, o índice do item e a própria matriz
No exemplo acima, a função de retorno de chamada não usa os parâmetros de índice e matriz, portanto, eles podem ser omitidos.
var numeros = [45, 4, 9, 16, 25];
var acima18 = numeros.filter(
function(valor){
return valor > 18;
}); // acima18 = [45,25];
Array.reduce ()
O método reduce() executa uma função em cada elemento da matriz para produzir (reduzi-lo para) um único valor, funciona da esquerda para a direita na matriz (veja reduceRight()) e não reduz a matriz original.
Este exemplo encontra a soma de todos os números em uma matriz:
var numeros = [45, 4, 9, 16, 25];
var sum = numeros.reduce(
function(total, valor, indice, matriz){
return total + valor;
});
A função recebe 4 argumentos: o total (o valor inicial / valor retornado anteriormente), o valor do item, o índice do item e a própria matriz.
O exemplo acima não usa os parâmetros de índice e matriz. Pode ser reescrito para:
var numeros = [45, 4, 9, 16, 25];
var sum = numeros.reduce(
function(total, valor) {
return total + valor;
});
O método reduce() pode aceitar um valor inicial:
var numeros = [45, 4, 9, 16, 25];
var sum = numeros.reduce(
function(total, value) {
return total + value;
},100);
Array.reduceRight ()
O método reduceRight() executa uma função em cada elemento da matriz para produzir (reduzi-lo para) um único valor. trabalha da direita para a esquerda na matriz (Veja reduce()) e não reduz a matriz original.
Este exemplo encontra a soma de todos os números em uma matriz:
var numeros = [45, 4, 9, 16, 25];
var sum = numeros.reduceRight(minhaFuncao);
function minhaFuncao(total, value, index, array) {
return total + value;
}
A função recebe 4 argumentos: o total (o valor inicial / valor retornado anteriormente), o valor do item, o índice do item e a própria matriz.
O exemplo acima não usa os parâmetros de índice e matriz. Pode ser reescrito para:
var numeros = [45, 4, 9, 16, 25];
var sum = numeros.reduceRight(minhaFuncao);
function minhaFuncao(total, value) {
return total + value;
}
Array.every ()
O método every() verifica se todos os valores da matriz são aprovados em um teste.
Este exemplo verifica se todos os valores da matriz são maiores que 18:
var numeros = [45, 4, 9, 16, 25];
var allOver18 = numeros.every(minhaFuncao);
function minhaFuncao(value, index, array) {
return value > 18;
}
A função usa 3 argumentos: o valor do item, o índice do item e a própria matriz.
Quando uma função de retorno de chamada usa apenas o primeiro parâmetro (valor), os outros parâmetros podem ser omitidos:
var numeros = [45, 4, 9, 16, 25];
var allOver18 = numeros.every(minhaFuncao);
function minhaFuncao(value) {
return value > 18;
}
Array.some ()
O método some() verifica se alguns valores da matriz passam em um teste.
Este exemplo verifica se alguns valores de matriz são maiores que 18:
var numeros = [45, 4, 9, 16, 25];
var algunAcima18 = numeros.some(minhaFuncao);
function minhaFuncao(value, index, array) {
return value > 18;
}
Array.indexOf ()
O método indexOf() procura um valor de elemento em uma matriz e retorna sua posição.
Nota: O primeiro item tem a posição 0, o segundo item tem a posição 1 e assim por diante.
Procure uma matriz para o item "Maçã":
var frutas = ["Maçã", "Laranja", "Maçã", "Manga"];
var a = frutas.indexOf("Maçã");
Sintaxe:
array.indexOf(item, start)
item |
Requerido. O item a ser pesquisado. |
inicio |
Opcional. Por onde começar a pesquisa. Valores negativos começarão em uma determinada posição contando de o final e serão pesquisados até o fim. |
Array.indexOf() retorna -1 se o item não for encontrado.
Se o item estiver presente mais de uma vez, ele retornará a posição da primeira ocorrência.
Array.lastIndexOf ()
O método Array.lastIndexOf() é o mesmo que Array.indexOf(), mas retorna a posição da última ocorrência do elemento especificado.
Procure uma matriz para o item "Maçã":
var frutas = ["Maçã", "Laranja", "Maçã", "Manga"];
var a = frutas.lastIndexOf("Maçã");
Sintaxe
array.lastIndexOf(item, inicio)
item |
Requerido. O item a ser pesquisado |
inicio |
Opcional. Por onde começar a pesquisa. Valores negativos começarão na posição dada, contando do final, e pesquisarão até o início |
Array.find ()
O método find() retorna o valor do primeiro elemento da matriz que passa em uma função de teste.
Este exemplo localiza (retorna o valor de) o primeiro elemento maior que 18:
var numeros = [4, 9, 16, 25, 29];
var primeiro = numeros.find(
function(value, index, array) {
return value > 18;
});
A função usa 3 argumentos: o valor do item, o índice do item e a própria matriz
Array.findIndex ()
O método findIndex() retorna o índice do primeiro elemento da matriz que passa em uma função de teste.
Este exemplo localiza o índice do primeiro elemento maior que 18:
var numeros = [4, 9, 16, 25, 29];
var primeiro = numeros.findIndex(
function(value, index, array) {
return value > 18;
}
A função usa 3 argumentos: o valor do item, o índice do item e a própria matriz.