Como pesquisar através de matrizes em JavaScript usando métodos de matriz?

Como pesquisar através de matrizes em JavaScript usando métodos de matriz?
Ao trabalhar com linguagens de programação, você costumava se encontrar trabalhando com vários tipos de dados colocados dentro de variáveis ​​de matriz. JavaScript não é diferente quando se trata de utilizar dados em matrizes. A maneira trivial de pesquisar dados dentro das matrizes é usando algum tipo de loop, principalmente o para laço. No entanto, em JavaScript, existem vários métodos que facilitam o processo de pesquisa através de uma matriz.

Vamos examinar alguns métodos que nos ajudam a procurar um elemento dentro de uma matriz. Esses métodos são:

  • inclui ()
  • índice de()
  • encontrar()
  • filtro()

Para testar todos os métodos deste tutorial, criaremos uma matriz contendo vários elementos:

Array = ["Google", 13, 66, "Esta é uma frase longa", "mesa e cadeira"];

O .Inclui () método

Quando você quer passar por uma matriz apenas para responder à pergunta “esse elemento existe nesta matriz ou não?”Você usa o .Inclui () método. A maneira como a .inclui () O método funciona é que ele pesquisa todos os elementos dentro da matriz para uma partida e, se encontrar qualquer correspondência, retorna verdadeiro Caso contrário, ele retornará falso.

Sintaxe de .Inclui () método

arr.inclui (elem);

Valor de retorno: Um valor booleano

Exemplo
Agora que temos nossa matriz:

Array = ["Google", 13, 66, "Esta é uma frase longa", "mesa e cadeira"];

Vamos tentar descobrir se existe um elemento "Google" presente, usando a seguinte linha de código:

console.log (matriz.inclui ("google"));

A saída é:

Ele retorna verdadeiro, o que significa que o elemento que estávamos procurando está realmente presente na matriz.

Hora de verificar se o número 23 está presente dentro de nossa matriz ou não. Podemos procurar 23 usando o comando:

console.log (arr.inclui (23));

Temos a saída:

Retornou falso, o que significa que não existe esse elemento presente dentro da matriz.

O .Método Indexof ()

O índice de() o método funciona de maneira semelhante ao inclui () método, mas uma diferença sutil entre essas duas funções é que o índice de() O método pesquisa a matriz pelo elemento desejado e retorna seu valor de índice em vez de retornar apenas um valor booleano. Se não houver esse elemento presente dentro da matriz, ele retornará o valor do índice de -1.

Sintaxe de .Método Indexof ()
A sintaxe do .índice de() o método é bastante básico. Isso é:

arr.indexOf (elem);

Valor de retorno: Índice do elemento dentro da matriz.

Exemplo
Tomando a matriz declarada:

Array = ["Google", 13, 66, "Esta é uma frase longa", "mesa e cadeira"];

Vamos testar essa função tentando encontrar o elemento "tabela e cadeira" com o seguinte comando:

console.log (matriz.indexOf ("tabela e cadeira"));

A saída é:

A saída é 4, pois o elemento “Tabela e Cadeira” foi o quinto elemento dentro da matriz e sabemos que o primeiro elemento dentro da matriz começa no índice “0”, é por isso que o 5º elemento tem o índice 4.

Vamos dar outro exemplo no qual tentaremos encontrar o índice do elemento "Yahoo" dentro de nossa matriz.

console.log (matriz.indexOf ("yahoo"));

Temos a seguinte saída:

Como podemos ver, a saída é -1, o que significa que o elemento "Yahoo" não está presente dentro de nossa matriz.

O .Método Find ()

O .encontrar() O método abre uma função de retorno de chamada e itera sobre toda a matriz para encontrar e retornar o primeiro elemento que cumpre uma certa condição dada na função de retorno de chamada.

Sintaxe de .Método Find ()
A sintaxe de .encontrar() função é:

variedade.encontre (função (elemento [, índice [, array]].arg);

Este método tem alguns parâmetros:

  • função: a função de retorno de chamada que será verificada em todos os elementos da matriz.
  • esse: parâmetro padrão - esse argumento do método

A função de retorno de chamada ainda leva três argumentos:

  • elemento: o único elemento da matriz durante a iteração, que está sendo comparado a uma determinada condição na função
  • índice: Índice do elemento atual
  • variedade: do elemento atual

Valor de retorno: O elemento que passa a condição de outra forma indefinido.

Exemplo
Vamos tentar encontrar um elemento dentro da matriz que tenha um comprimento de mais de 10 usando o seguinte comando:

console.log (matriz.encontre (elem => elem.comprimento> 10));

Temos a seguinte saída:

O primeiro elemento que tem um comprimento superior a 10 foi impresso, embora ainda houvesse outro elemento dentro da matriz que tinha um comprimento de mais de 10.

Vamos fazer isso, mudando a condição de mais de 10 para mais de 30, sabemos que não temos nenhum elemento dentro de nossa matriz que tenha um comprimento de mais de 30.

Use o seguinte comando:

console.log (matriz.encontre (elem => elem.comprimento> 30));

A saída que obtemos é:

Como já sabíamos, não tínhamos elemento com um comprimento superior a 30, portanto, a função retornou a nós com "indefinido".

O .Método Filter ()

Como estamos cientes agora que o .encontrar() O método encontra apenas o primeiro elemento que cumpre uma determinada condição e depois para de executar. Mas na maioria das vezes, você não quer isso, você quer uma lista de todos os elementos que cumprem essa condição específica. É por isso que usamos o .filtro() método.

O .filtro() O método pesquisa a matriz e retorna uma matriz de todos os elementos que cumprem uma certa condição.

Sintaxe do método filter ()
A sintaxe do método filtro () é bastante semelhante ao .Método Find (). É como:

variedade.encontre (função (elemento [, índice [, array]].arg);

Vamos explicar seus parâmetros muito brevemente.

  • função: a função de retorno de chamada
  • esse: parâmetro padrão - esse argumento do método

A função de retorno de chamada ainda leva três argumentos:

  • elemento: o único elemento da matriz durante a iteração, que está sendo comparado a uma determinada condição na função
  • índice: Índice do elemento atual
  • variedade: Array do elemento atual

Valor de retorno: Uma matriz contendo todos os elementos que passaram a condição, caso contrário, uma matriz vazia.

Exemplo
Vamos dar o exemplo do método anterior, que é, para verificar a matriz para os elementos que têm um comprimento de mais de 10 usando o comando:

console.log (matriz.filtro ((elem) => elem.comprimento> 10));

A saída do comando é como:

Como você pode ver, esse método retornou uma matriz de todos os elementos que cumpriram nossa condição. Mas e se, assim como os exemplos no método anterior, queremos procurar os elementos com um comprimento de mais de 30?. Bem, fazemos isso usando a seguinte declaração:

console.log (matriz.filtro ((elem) => elem.comprimento> 30));

A saída que obtemos é:

Como não havia sequer um único elemento dentro da matriz que tinha um comprimento superior a 30, é por isso que esse método nos devolveu uma matriz vazia.

Então, no final, agora estamos cientes de algumas respostas depois de usar esses métodos:

  • Você quer saber se um elemento está presente dentro de uma matriz?
    Use o .inclui () método
  • Você quer encontrar e obter o índice de um elemento específico dentro da matriz?
    Use o .índice de() método
  • Você quer saber qual elemento ou elementos atendem a uma condição específica?
    Use o .encontrar() e .filtro() métodos

Conclusão

Lidar com dados armazenados dentro de matrizes é uma parte crucial e integral de qualquer linguagem de programação, especialmente quando você está trabalhando com dados estruturados dentro de matrizes. Podemos pesquisar em uma matriz usando os quatro métodos principais fornecidos no JavaScript. Esses métodos são ou seja, inclui (), find (), indexof (), filtro (). Aprendemos a sintaxe desses métodos, seus valores de retorno junto com seus exemplos.