Introducción
Contenido
Las matrices son una de las estructuras de datos más utilizadas en informática. Al tratar con una lista de elementos (matriz), a menudo se nos pide que busquemos un valor particular en la lista. JavaScript contiene algunos métodos integrados para verificar si una matriz tiene un valor u objeto específico.
En este artículo, veremos cómo verificar si una matriz incluye / contiene un valor o elemento en JavaScript.
Te puede interesar:Guía de cierres de JavaScriptVerificar matriz de valores primitivos incluye un valor
Función Array.includes ()
La forma más sencilla de verificar un valor primitivo en una matriz es usar el includes()
método:
let isInArray = arr.includes(valueToFind[, fromIndex])
// arr - array we're inspecting
// valueToFind - value we're looking for
// fromIndex - index from which the seach will start (defaults to 0 if left out)
// isInArray - boolean value which tells us if arr contains valueToFind
Por ejemplo, verifiquemos si la matriz de animales contiene los emojis de perro y gato:
Te puede interesar:JavaScript: cómo insertar elementos en un índice específico de una matrizlet animals = ["🐘", "🐒", "🐶", "🐍"]
animals.includes("🐶") // true
animals.includes("🐱") // false
La función devuelve un valor booleano, que significa la presencia o ausencia del valor.
Función Array.indexOf ()
En los casos en que necesitemos la ubicación exacta del elemento que estamos buscando, podemos usar el indexOf(elem)
método, que busca elem
en la matriz especificada y devuelve el índice de su primera aparición, y -1
si la matriz no contiene elem
.
Por ejemplo, podemos buscar la primera aparición de una calificación en una matriz que contiene calificaciones:
let grades = ["B", "D", "C", "A"]
grades.indexOf("A") // 3
grades.indexOf("F") // -1
En la primera instancia, el elemento está presente y se devuelve su posición. En la segunda instancia, el valor de retorno significa que el elemento no está presente.
Podemos usar esto para alterar el flujo de código fácilmente:
Te puede interesar:Búsqueda lineal en JavaScriptlet grades = ["B", "D", "C", "A"]
if (grades.indexOf("F") >= 0) {
console.log("Element is present");
} else {
console.log("Element is not present");
}
Si pasamos F
, se imprime el mensaje adecuado:
Element is not present
Comprobación de si la matriz de objetos incluye un objeto
alguna () función
Al buscar un objeto, includes()
comprueba si la referencia de objeto proporcionada coincide con la de la matriz. Esto rara vez es lo que queremos, porque los objetos pueden tener campos idénticos con valores correspondientes pero referencias diferentes.
Podemos usar el some()
método para buscar por contenido del objeto. los some()
El método toma un argumento acepta una devolución de llamada, que se ejecuta una vez para cada valor en la matriz hasta que encuentra un elemento que cumple la condición establecida por el callback
función y devuelve true
.
Miremos a some()
en acción para entenderlo mejor:
let animals = [{name: "dog"}, {name: "snake"}, {name: "monkey"}, {name: "donkey"}]
let element = {name: "monkey"}
animals.some(animal => animal.name === element.name)
La función de devolución de llamada vuelve false
para los dos primeros casos, pero devuelve true
para el tercer elemento, ya que los nombres coinciden. Después de este, some()
detiene la ejecución y regresa true
.
Conclusión
En este artículo, hemos repasado algunas formas de verificar si una matriz contiene un valor o no, en JavaScript.
Hemos cubierto el includes()
función, que devuelve un valor booleano si el valor está presente. los indexOf()
La función devuelve el índice de un valor si está presente, y -1
si no lo es.
Finalmente, para los objetos, el some()
La función nos ayuda a buscar la presencia de objetos en función de su contenido.