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 *