La función find () es otra función muy utilizada en la biblioteca de JavaScript de subrayado. La firma tiene un aspecto familiar en _.find (lista, predicado, [contexto]) similar a la función some () que cubrimos recientemente. La find()función toma una matriz u objeto como primer parámetro. El segundo parámetro es una función requerida que se debe pasar y que se ejecuta en cada elemento del elemento de matriz o propiedad del objeto que se pasó como primer argumento. La función de predicado debe devolver un valor booleano, ya sea truefalseLa find()función casi puede ser pensado como un bucle que la iteración se detiene una vez que el truese encuentra el valor. En otras palabras,find()iterará hasta que encuentre un trueresultado para la función de predicado, y en ese momento devolverá el valor de la propiedad del objeto o el valor del elemento de matriz en la posición actual. Echemos un vistazo a algunos ejemplos de find () en el subrayado ahora.



Ejemplo de función de búsqueda 1

Este primer ejemplo de la findfunción en subrayado hace uso de una función de predicado para buscar y devolver la primera instancia de un número par. Entonces, en primer lugar, configuramos una matriz de enteros valuesLuego asignamos una función a la evenCheckervariable. Cuando ejecutamos la find()función, pasamos valuescomo primer argumento y la función de predicado evenCheckercomo segundo. Como puede ver si hace clic en el botón para ejecutar el código, se devuelve la primera instancia de un número par, que es el número 2 .

Hacer clic Claro


Ejemplo de función de búsqueda 2

El segundo ejemplo de la función de búsqueda hace uso de la misma matriz de valores enteros para buscar. En este ejemplo, cambiamos la función evenChecker por una oddCheckerfunción. Cuando ejecutamos la find()función y pasamos la valuesmatriz como primer argumento, ahora pasamos oddChecker como función de predicado para el segundo argumento. Ejecutar el código de ejemplo devuelve el número 1 , que de hecho es el primer número impar en nuestra matriz de valores.

Hacer clic Claro


Ejemplo de función de búsqueda 3

En el tercer ejemplo de la función de subrayado find (), una vez más cambiamos la función de predicado para que coincida con un criterio específico. En esta iteración, queremos buscar la primera instancia de un número mayor que 7. Nuestra nueva función de predicado está greaterThanen este ejemplo. Haga clic en ese botón de ejecución para encontrar lo que esperaría, un resultado de 8 .

Hacer clic Claro


Ejemplo de función de búsqueda 4

El ejemplo 4 intercambia la función de predicado mayor que por una lessThanfunción de predicado. Su trabajo es devolver un valor menor que 10. Cuando ejecutamos este código, se devuelve la primera instancia de un número menor que 10. En este caso, es 1 . Recuerde, la find()función deja de buscar y devuelve el valor tan pronto como se encuentra la coincidencia. Entonces, en este caso, en la primera iteración mira el número 1 y ve si es menor que 10. Dado que esto es true, devuelve el número y deja de iterar allí mismo.

Hacer clic Claro


Ejemplo de función de búsqueda de matriz de objetos

Este ejemplo va a ser un poco más complicado que los primeros cuatro que vimos. En primer lugar, configuraremos una websitesvariable que contenga una matriz de objetos . Cada objeto tiene dos propiedades nametypeA continuación, vemos una variable getWebsitesCountPerTypeque tiene una función. Esta función cuenta la cantidad de sitios web por tipo, luego devuelve una matriz como solución, mientras hace uso de la find()función para manejar la mayor parte del trabajo pesado. Finalmente, recorremos los resultados y desconectamos el cálculo de 2 sitios web de motores de búsqueda, 3 sitios web de redes sociales, 2 sitios web de sitios de compras y 4 sitios web de sitios de noticias.

Hacer clic Claro


Cómo utilizar la función de búsqueda en el resumen JS de subrayado

En este tutorial, echamos un buen vistazo a la función de búsqueda en la biblioteca de JavaScript de Underscore. Esta función se usa ampliamente en Underscore para buscar y filtrar colecciones.