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:
- Filtrar
- Encontrar
- Incluye
- Í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 devuelvearray
es la matriz en la que se llama al método de filtrocallback
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 quefind
se 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), yfromIndex
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 includes
método.
const indexOfElement = array.indexOf(element, fromIndex)
Dónde
element
es el elemento que está buscando en la matriz (obligatorio), yfromIndex
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 includes
y indexOf
usan igualdad estricta ('===') para buscar en la matriz. Si los valores son de diferentes tipos (por ejemplo, '4' y 4), devolverán false
y -1
respectivamente.
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
filter
si desea buscar todos los elementos de una matriz que cumplan una condición específica. - Úselo
find
si desea verificar si al menos un artículo cumple una condición específica. - Úselo
includes
si desea verificar si una matriz contiene un valor particular. - Úselo
indexOf
si 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í.