JavaScript Array indexOf e lastIndexOf: localizando um elemento em um array

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.

  1. O searchElement argumento é o elemento que você deseja encontrar no array.
  2. 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 scoresque 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 scoresmatriz:

console.log(scores.indexOf(10)); // 0
console.log(scores.indexOf(30)); // 2
console.log(scores.indexOf(50)); // -1
console.log(scores.indexOf(20)); // 1Linguagem de código:  JavaScript  ( javascript )

Exemplo de método indexOf de array 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: namee 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 -1mesmo que o primeiro elemento da guestsmatriz e searchElementtenha os mesmos valores nas propriedades namee ages. Isso ocorre porque são dois objetos diferentes.

console.log(guests.indexOf({
    name: 'John Doe',
    age: 30
})); // -1Linguagem 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 scoresmatriz.

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 searchElementarray. Ele retorna -1se 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 scoresmatriz.

console.log(scores.lastIndexOf(10));// 3
console.log(scores.lastIndexOf(20));// 5
Linguagem de código:  JavaScript  ( javascript )

Exemplo de método lastIndexOf da matriz JavaScript

Como o número 50 não está na scoresmatriz, a instrução a seguir retorna -1.

console.log(scores.lastIndexOf(50));// -1Linguagem 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.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *