Resumo : neste tutorial, mostraremos como usar o array indexOf()
e lastIndexOf()
os métodos JavaScript para encontrar a posição de um elemento em um array.
Introdução ao indexOf()
método de array JavaScript
Para encontrar a posição de um elemento em um array , você usa o indexOf()
método. Este método retorna o índice da primeira ocorrência do elemento que você deseja encontrar, ou -1 se o elemento não for encontrado.
O seguinte ilustra a sintaxe do indexOf()
método.
Array.indexOf(searchElement, fromIndex)
Linguagem de código: JavaScript ( javascript )
Conforme mostrado acima, o indexOf()
método aceita dois argumentos nomeados.
- O
searchElement
argumento é o elemento que você deseja encontrar no array. - O
fromIndex
é um índice de array no qual a função inicia a pesquisa.
O fromIndex
argumento pode ser um número inteiro positivo ou negativo. Se o fromIndex
argumento for negativo, o indexOf()
método começa a pesquisar no comprimento do array plus fromIndex
.
Caso você omita o fromIndex
argumento, o indexOf()
método inicia a busca desde o início da string.
Observe que o indexOf()
método usa o algoritmo de comparação de igualdade estrita que é semelhante ao operador triplo igual ( ===
) ao comparar searchElement
com os elementos da matriz.
indexOf()
Os exemplos de métodos de array JavaScript
Suponha que você tenha uma matriz scores
que consiste em seis números da seguinte forma:
var scores = [10, 20, 30, 10, 40, 20];
Linguagem de código: JavaScript ( javascript )
O exemplo a seguir usa o indexOf()
método para encontrar os elementos na scores
matriz:
console.log(scores.indexOf(10)); // 0
console.log(scores.indexOf(30)); // 2
console.log(scores.indexOf(50)); // -1
console.log(scores.indexOf(20)); // 1
Linguagem de código: JavaScript ( javascript )
E o exemplo a seguir usa the fromIndex()
com valores negativos:
console.log(scores.indexOf(20,-1)); // 5 (fromIndex = 6+ (-1) = 5)
console.log(scores.indexOf(20,-5)); // 1 (fromIndex = 6+ (-5) = 1)
Linguagem de código: JavaScript ( javascript )
Supondo que você tenha o seguinte array de objetos , onde cada objeto possui duas propriedades: name
e age
.
var guests = [
{name: 'John Doe', age: 30},
{name: 'Lily Bush', age: 20},
{name: 'William Gate', age: 25}
];
Linguagem de código: JavaScript ( javascript )
A instrução a seguir retorna -1
mesmo que o primeiro elemento da guests
matriz e searchElement
tenha os mesmos valores nas propriedades name
e ages
. Isso ocorre porque são dois objetos diferentes.
console.log(guests.indexOf({
name: 'John Doe',
age: 30
})); // -1
Linguagem de código: JavaScript ( javascript )
Às vezes, você deseja encontrar os índices de todas as ocorrências de um elemento em uma matriz. A find()
função a seguir usa o indexOf()
método para fazer isso.
function find(needle, haystack) {
var results = [];
var idx = haystack.indexOf(needle);
while (idx != -1) {
results.push(idx);
idx = haystack.indexOf(needle, idx + 1);
}
return results;
}
Linguagem de código: JavaScript ( javascript )
O exemplo a seguir usa a find()
função acima para retornar uma matriz de posições do número 10 na scores
matriz.
console.log(find(10,scores)); // [0, 3]
Linguagem de código: JavaScript ( javascript )
lastIndexOf()
Método de matriz JavaScript
O tipo Array possui outro método chamado lastIndexOf()
que fornece funcionalidade semelhante ao indexOf()
método.
O seguinte ilustra a sintaxe do lastIndexOf()
método:
Array.lastIndexOf(searchElement[, fromIndex = Array.length - 1])
Linguagem de código: JavaScript ( javascript )
O lastIndexOf()
método retorna o índice da última ocorrência de no searchElement
array. Ele retorna -1
se não conseguir encontrar o elemento.
Diferente do indexOf()
método, o lastIndexOf()
método procura o elemento de trás para frente, começando emfromIndex.
As instruções a seguir retornam os últimos índices dos números 10 e 20 na scores
matriz.
console.log(scores.lastIndexOf(10));// 3
console.log(scores.lastIndexOf(20));// 5
Linguagem de código: JavaScript ( javascript )
Como o número 50 não está na scores
matriz, a instrução a seguir retorna -1
.
console.log(scores.lastIndexOf(50));// -1
Linguagem de código: JavaScript ( javascript )
Neste tutorial, você aprendeu como usar o array indexOf()
e lastIndexOf()
os métodos JavaScript para localizar um elemento no array.