Cómo buscar en matrices en JavaScript utilizando métodos de matriz?

Cómo buscar en matrices en JavaScript utilizando métodos de matriz?
Al trabajar con lenguajes de programación, a menudo se encontrará trabajando con varios tipos de datos colocados dentro de las variables de matriz. JavaScript no es diferente cuando se trata de utilizar datos en matrices. La forma trivial de buscar datos dentro de las matrices es utilizando algún tipo de bucle, más preferiblemente el para bucle. Sin embargo, en JavaScript, existen varios métodos que facilitan el proceso de búsqueda a través de una matriz.

Vamos a revisar algunos métodos que nos ayudan a buscar un elemento dentro de una matriz. Estos métodos son:

  • Incluye ()
  • índice de()
  • encontrar()
  • filtrar()

Para probar todos los métodos en este tutorial, vamos a crear una matriz que contenga varios elementos:

array = ["google", 13, 66, "Esta es una oración larga", "tabla y silla"];

El .incluye () método

Cuando desee pasar por una matriz solo para responder la pregunta: “¿Existe este elemento en esta matriz o no?"Usas el .incluye () método. La forma en que el .Incluye () El método funciona es que busca cada elemento dentro de la matriz para una coincidencia y si encuentra alguna coincidencia, regresa verdadero De lo contrario, devolverá falso.

Sintaxis de .incluye () método

arrugado.incluye (elem);

Valor de retorno: Un valor booleano

Ejemplo
Ahora que tenemos nuestra matriz:

array = ["google", 13, 66, "Esta es una oración larga", "tabla y silla"];

Intentemos encontrar si hay un elemento "Google" presente en él, utilizando la siguiente línea de código:

consola.registro (matriz.incluye ("google"));

La salida es:

Vuelve verdadero, lo que significa que el elemento que estábamos buscando está presente en la matriz.

Tiempo para verificar si el número 23 está presente dentro de nuestra matriz o no. Podemos buscar 23 usando el comando:

consola.registro (arr.incluye (23));

Obtenemos la salida:

Devolvió falso, lo que significa que no hay dicho elemento presente dentro de la matriz.

El .método indexOf ()

El índice de() El método funciona de manera similar al Incluye () método, pero una diferencia sutil entre estas dos funciones es que el índice de() El método busca la matriz para el elemento deseado y devuelve su valor de índice en lugar de devolver solo un valor booleano. Si no hay dicho elemento presente dentro de la matriz, entonces devuelve el valor de índice de -1.

Sintaxis de .método indexOf ()
La sintaxis del .índice de() El método es bastante básico. Es:

arrugado.índicef (elem);

Valor de retorno: Índice del elemento dentro de la matriz.

Ejemplo
Tomando la matriz declarada:

array = ["google", 13, 66, "Esta es una oración larga", "tabla y silla"];

Vamos a probar esta función tratando de encontrar el elemento "tabla y silla" con el siguiente comando:

consola.registro (matriz.índicef ("tabla y silla"));

La salida es:

La salida es 4, ya que el elemento "tabla y silla" fue el quinto elemento dentro de la matriz y sabemos que el primer elemento dentro de la matriz comienza desde el índice "0", por eso el quinto elemento tiene el índice 4.

Tomemos otro ejemplo en el que intentaremos encontrar el índice del elemento "Yahoo" dentro de nuestra matriz.

consola.registro (matriz.indexOf ("yahoo"));

Obtenemos la siguiente salida:

Como podemos ver, la salida es -1, lo que significa que el elemento "Yahoo" no está presente dentro de nuestra matriz.

El .Método Find ()

El .encontrar() El método toma en una función de devolución de llamada e itera sobre toda la matriz para encontrar y devolver el primer elemento que cumple una cierta condición dada en la función de devolución de llamada.

Sintaxis de .Método Find ()
La sintaxis de .encontrar() la función es:

formación.buscar (función (elemento [, index [, array]] esto.arg);

Este método tiene bastantes parámetros:

  • función: la función de devolución de llamada que se verificará en cada elemento de la matriz.
  • este: Parámetro predeterminado - este Argumento del método

La función de devolución de llamada requiere tres argumentos:

  • elemento: El elemento único de la matriz durante la iteración, que se coincide con una condición dada en la función
  • índice: Índice del elemento actual
  • formación: del elemento actual

Valor de retorno: El elemento que pasa la condición de otra manera indefinido.

Ejemplo
Intentemos encontrar un elemento dentro de la matriz que tenga una longitud de más de 10 usando el siguiente comando:

consola.registro (matriz.encontrar (elem => elem.longitud> 10));

Obtenemos la siguiente salida:

El primer elemento que tiene una longitud más de 10 se imprimió a pesar de que todavía había otro elemento dentro de la matriz que tenía una longitud de más de 10.

Hagamos esto, cambiando la condición de más de 10 a más de 30, sabemos que no tenemos ningún elemento dentro de nuestra matriz que tenga una longitud de más de 30.

Use el siguiente comando:

consola.registro (matriz.encontrar (elem => elem.longitud> 30));

La salida que obtenemos es:

Como ya sabíamos, no teníamos elemento con una longitud más de 30, por lo tanto, la función nos devolvió con "indefinido".

El .Método Filter ()

Como sabemos ahora que el .encontrar() El método solo encuentra el primer elemento que cumple una determinada condición y luego deja de ejecutar. Pero la mayoría de las veces, no quieres eso, quieres una lista de todos los elementos que cumplan esa condición específica. Por eso usamos el .filtrar() método.

El .filtrar() El método busca la matriz y devuelve una matriz de todos los elementos que cumplen una determinada condición.

Sintaxis del método Filter ()
La sintaxis del método filtre () es bastante similar al .Método Find (). Es como:

formación.buscar (función (elemento [, index [, array]] esto.arg);

Expliquemos sus parámetros muy brevemente.

  • función: la función de devolución de llamada
  • este: Parámetro predeterminado - este Argumento del método

La función de devolución de llamada requiere tres argumentos:

  • elemento: El elemento único de la matriz durante la iteración, que se coincide con una condición dada en la función
  • índice: Índice del elemento actual
  • formación: Matriz de elemento actual

Valor de retorno: Una matriz que contiene todos los elementos que pasaron la condición, de lo contrario una matriz vacía.

Ejemplo
Tomemos el ejemplo del método anterior, que es, para verificar la matriz de los elementos que tienen una longitud de más de 10 usando el comando:

consola.registro (matriz.filtro ((elem) => elem.longitud> 10));

La salida del comando es como:

Como puede ver, este método devolvió una matriz de todos los elementos que cumplieron nuestra condición. Pero, ¿qué pasa si, al igual que los ejemplos del método anterior, queremos buscar los elementos con una longitud de más de 30?. Bueno, lo hacemos usando la siguiente declaración:

consola.registro (matriz.filtro ((elem) => elem.longitud> 30));

La salida que obtenemos es:

Dado que ni siquiera había un solo elemento dentro de la matriz que tenía una longitud de más de 30, es por eso que este método nos devolvió una matriz vacía.

Entonces, al final, ahora somos conscientes de algunas respuestas después de usar estos métodos:

  • ¿Quieres saber si un elemento está presente dentro de una matriz??
    Utilizar el .Incluye () método
  • ¿Quieres encontrar y obtener el índice de un elemento específico dentro de la matriz??
    Utilizar el .índice de() método
  • ¿Quieres saber qué elemento o elementos cumplen con una condición específica??
    Utilizar el .encontrar() y .filtrar() métodos

Conclusión

Tratar con datos que se almacenan dentro de las matrices es una parte crucial e integral de cualquier lenguaje de programación, especialmente cuando trabaja con datos estructurados dentro de las matrices. Podemos buscar a través de una matriz utilizando los cuatro métodos clave proporcionados dentro de JavaScript. Estos métodos son a saber Incluye (), find (), indexOf (), filtre (). Aprendimos la sintaxis de estos métodos, sus valores de retorno junto con sus ejemplos.