Cuatro formas diferentes de buscar una matriz en JavaScript

Existen diferentes métodos en JavaScript que puede utilizar para buscar un elemento en una matriz. El método que elija depende de su caso de uso específico.

Por ejemplo, ¿desea obtener todos los elementos de una matriz que cumplan una condición específica? ¿Quieres comprobar si algún artículo cumple la condición? ¿Quieres comprobar si hay un valor específico en la matriz? ¿O quieres encontrar el índice del valor en la matriz?

Para todos estos casos de uso, los métodos Array.prototype de JavaScript lo tienen cubierto. En este artículo, analizaremos cuatro métodos que podemos usar para buscar un elemento en una matriz. Estos métodos son:

  1. Filtrar
  2. Encontrar
  3. Incluye
  4. Índice de

Analicemos cada uno de ellos.

Array.filter ()

Podemos usar el método Array.filter () para encontrar elementos en una matriz que cumplan una determinada condición. Por ejemplo, si queremos obtener todos los elementos de una matriz de números mayores que 10, podemos hacer esto:

const array = [10, 11, 3, 20, 5]; const greaterThanTen = array.filter(element => element > 10); console.log(greaterThanTen) //[11, 20]

La sintaxis para usar el método array.filter () es la siguiente:

let newArray = array.filter(callback);

dónde

  • newArray es la nueva matriz que se devuelve
  • array es la matriz en la que se llama al método de filtro
  • callback es la función de devolución de llamada que se aplica a cada elemento de la matriz

Si ningún elemento de la matriz cumple la condición, se devuelve una matriz vacía. Puedes leer más sobre este método aquí.

Hay momentos en los que no necesitamos todos los elementos que cumplen una determinada condición. Solo necesitamos un elemento que coincida con la condición. En ese caso, necesita el método find ().

Array.find ()

Usamos el método Array.find () para encontrar el primer elemento que cumple una determinada condición. Al igual que el método de filtro, toma una devolución de llamada como argumento y devuelve el primer elemento que cumple la condición de devolución de llamada.

Usemos el método de búsqueda en la matriz en nuestro ejemplo anterior.

const array = [10, 11, 3, 20, 5]; const greaterThanTen = array.find(element => element > 10); console.log(greaterThanTen)//11

La sintaxis de array.find () es

let element = array.find(callback);

La devolución de llamada es la función que se ejecuta en cada valor de la matriz y toma tres argumentos:

  • element - el elemento en el que se está iterando (obligatorio)
  • index - el índice / posición del elemento actual (opcional)
  • array- la matriz que findse llamó (opcional)

Sin embargo, tenga en cuenta que si ningún elemento de la matriz cumple la condición, regresa undefined.

Sin embargo, ¿qué sucede si desea verificar si un determinado elemento está en una matriz? ¿Cómo haces esto?

Array.include ()

El método incluye () determina si una matriz incluye un determinado valor y devuelve verdadero o falso según corresponda.

Entonces, en el ejemplo anterior, si queremos verificar si 20 es uno de los elementos de la matriz, podemos hacer esto:

const array = [10, 11, 3, 20, 5]; const includesTwenty = array.includes(20); console.log(includesTwenty)//true

Notará una diferencia entre este método y otros métodos que hemos considerado. Este método acepta un valor en lugar de una devolución de llamada como argumento. Aquí está la sintaxis del método incluye:

const includesValue = array.includes(valueToFind, fromIndex)

Dónde

  • valueToFind es el valor que está comprobando en la matriz (obligatorio), y
  • fromIndex es el índice o posición en la matriz desde la que desea comenzar a buscar el elemento (opcional)

Para obtener el concepto de índice, visitemos nuestro ejemplo nuevamente. Si queremos comprobar si la matriz contiene 10 en otras posiciones además del primer elemento, podemos hacer esto:

const array = [10, 11, 3, 20, 5]; const includesTenTwice = array.includes(10, 1); console.log(includesTenTwice)//false

Array.indexOf ()

El método indexOf () devuelve el primer índice en el que se puede encontrar un elemento dado en una matriz. Devuelve -1 si el elemento no existe en la matriz.

Volvamos a nuestro ejemplo. Busquemos el índice de 3 en la matriz.

const array = [10, 11, 3, 20, 5]; const indexOfThree = array.indexOf(3); console.log(indexOfThree)//2

Su sintaxis es similar a la del includesmétodo.

const indexOfElement = array.indexOf(element, fromIndex)

Dónde

  • element es el elemento que está buscando en la matriz (obligatorio), y
  • fromIndex es el índice o posición en la matriz desde la que desea comenzar a buscar el elemento (opcional)

Es importante tener en cuenta que los métodos includesy indexOfusan igualdad estricta ('===') para buscar en la matriz. Si los valores son de diferentes tipos (por ejemplo, '4' y 4), devolverán falsey -1respectivamente.

Resumen

Con estos métodos de matriz, no es necesario utilizar un bucle for para buscar una matriz. Dependiendo de lo que necesite, puede decidir cuál de los métodos es el más adecuado para su caso de uso.

A continuación, se muestra un resumen de cuándo utilizar cada método:

  • Úselo filtersi desea buscar todos los elementos de una matriz que cumplan una condición específica.
  • Úselo findsi desea verificar si al menos un artículo cumple una condición específica.
  • Úselo includessi desea verificar si una matriz contiene un valor particular.
  • Úselo indexOfsi desea encontrar el índice de un elemento en particular en una matriz.

¿Quieres recibir una notificación cuando publique un artículo nuevo? Haga clic aquí.