JavaScript: compruebe si la matriz incluye un valor / elemento

     

    Introducción

    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.

    Verificar 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:

    let 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:

    let 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.

     

    Etiquetas:

    Deja una respuesta

    Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *