Como buscar coincidencia para cumplir una condición

Hola
Usando la actividad List directory files cree la variable directory files donde se almacena una lista de carpetas. Usando un ciclo necesito validar SI el nombre de la carpeta directory_files[k] coincide con alguno de los valores guardados en el arreglo hospitales_cdmx

Estoy usando este metodo: directory_files[k].includes(hospitales_cdmx) pero no funciona, hay alguna otra forma de validar esa coincidencia?

2 Likes

Hi, @Yoshi!

If i understand you correctly,
I think you can:

  • you take directory_files[k]

  • then you make a loop for array hospitales_cdmx

  • first make i = 0

  • you check directory_files[k] and hospitales_cdmx[i]

  • then you make i = i + 1

  • then you check directory_files[k] and hospitales_cdmx[i]

  • and so on…

  • thenk you make k = k + 1

  • and repeat loop for hospitales_cdmx one more time.

so you will have 2 loops. one loop for directory files
and one loop for hospitales_cdmx

Regards
Mikhail

1 Like

or you can join hospitales_cdmx in one variable (for example str = hospitales_cdmx.join(‘;’)), using js method join, and then you can use activity “text found” to check if directory_files[k] is in str

Regards
Mikhail

1 Like

Hi, @Yoshi

Did you try:

hospitales_cdmx.includes(directory_files[k]) ?

for example
x = [“one”, “two”, “three”]
x2 = x.includes(“two”)
// x2 is true

Regards,
Mikhail

1 Like

Hi Mikhail
I already tried hospitales_cdmx .includes(directory_files[k]) ? and didn’t work

hospitales_cdmx has no loop, it is just an array like
hospitales_cdmx = [‘Condesa’, ‘Roma’, ‘Narvarte’, ‘Napoles’]

2 Likes

Qué tal @Yoshi,

La solución que provee @Mikhail es la correcta, pero faltaría agregar más contexto. Esta verificación se debería hacer dentro de un bucle donde k sea el contador, la condición sea k < director_files.length, y dentro del bucle se verifique la condición hospitales_cdmx.includes(directory_files[k])

La lógica de este bucle es recorrer cada nombre de carpeta guardado en el arreglo directory_files, verificando si el arreglo hospitales_cdmx incluye un elemento con el mismo nombre que la carpeta correspondiente.

Un detalle a tener en cuenta: es importante que en la actividad “List directory files”, la opción “Return full pats to files and folders” NO esté seleccionada - caso contrario, el arreglo directory_files contendrá las rutas completas de las carpetas, no sus nombres.

Así se vería:

En los “Console logs” al final estoy escribiendo lo siguiente, incluyendo “SÍ” en el camino de la izquierda y “NO” en el de la derecha:

"'" + directory_files[k] + "' [SÍ/NO] está incluido en hospitales_cdmx"

Y el resultado se ve así, con las siguientes variables al final de la ejecución:

Me comentas por favor si este approach te funciona, o si tuvieras alguna duda adicional. En caso que no te funcione, te pediría más detalles del flujo de trabajo, quizá una captura de pantalla de cómo lo estás llevando a cabo para tratar de encontrar los puntos a mejorar.

¡Muchas gracias!

3 Likes

Hola Ivan
te comparto como estan declaradas las variables y la parte del flujo de trabajo donde se encuentran.



Screenshot_49

La validación es la misma que en tu ejemplo pero no entiendo por que no se cumple

Hi, @Yoshi!

I think it is possible to make:

  • you have directory_files[k]

then you make a loop:

counter = 0
if counter < hospitales_cdmx.length

then we use “text found” activity

Input text (calculate value): directory_files[k]
Text to check (calculate value): hospitales_cdmx[counter]

if text isn’t found, we make
counter = counter +1
and check condition one more time.

if text is found, then you make other activities

  • thenk you make k = k + 1 (you return to the first loop).

so you will have 2 loops.
one loop for directory files
and one loop for hospitales_cdmx

Regards
Mikhail

1 Like

Gracias @Ivan_Ramos y @Mikhail por sus respuestas, fueron de mucha ayuda

2 Likes