menu

Trabajo con banderas en JavaScript

Ahora aprenderemos a trabajar con banderas. Una bandera es una variable especial que solo puede tomar dos valores: true y false. Con la ayuda de banderas, puedes resolver tareas que verifican la ausencia de algo: por ejemplo, puedes verificar que en un array no hay un elemento con un valor específico. Vamos a empezar.

Resolvamos la siguiente tarea: dado un array con números, necesitamos verificar si hay en él un elemento con el valor 3 o no. Si lo hay - mostraremos '+++', si no - mostraremos '---'.

Para empezar, intentemos mostrar '+++'. Para ello, recorreremos todos los elementos de nuestro array y con un if preguntaremos - ¿es igual el elemento actual al valor 3? Si es igual - mostraremos '+++':

let arr = [1, 2, 3, 4, 5]; for (let elem of arr) { if (elem == 3) { console.log('+++'); } }

Pero nuestra solución no es muy buena: porque si en el array hay no un solo valor 3, sino varios, entonces '+++' se mostrará varias veces. Cambiemos nuestro array (hagamos dos elementos con el valor 3) y convenzámonos de ello:

let arr = [1, 2, 3, 4, 3, 5]; for (let elem of arr) { if (elem == 3) { console.log('+++'); // se mostrará varias veces } }

Arreglemos el problema: terminemos el ciclo con la ayuda de break, si el elemento ya fue encontrado:

let arr = [1, 2, 3, 4, 3, 5]; for (let elem of arr) { if (elem == 3) { console.log('+++'); break; // terminamos el ciclo } }

Ahora intentemos hacer que, si en el array no hay en absoluto elementos con el valor 3, se muestre '---'. Un error común sería agregar else a nuestro if - en este caso '---' se mostrará para todos los elementos que no sean 3:

let arr = [1, 2, 3, 4, 5]; for (let elem of arr) { if (elem == 3) { console.log('+++'); // se mostrará en el elemento 3 } else { console.log('---'); // se mostrará en los elementos 1, 2, 4, 5 } }

Entonces, la idea de agregar else - es una mala idea, no funciona. Para resolver tareas de este tipo (estas tareas se encuentran con bastante frecuencia) se usan las llamadas banderas.

Como se mencionó anteriormente, una bandera es una variable de este tipo, que puede tomar dos valores: true o false.

Entonces, hagamos una variable flag con este significado: si es igual a true, entonces en el array hay un elemento 3, y si es false, entonces no hay tal elemento.

Inicialmente, pongamos la variable flag en el valor false - es decir, consideraremos que el elemento 3 no está en el array:

let arr = [1, 2, 3, 4, 5]; let flag = false; // consideramos que el elemento 3 no está en el array

Luego, ejecutemos un ciclo con un if tal como lo hicimos antes. Si el ciclo detecta que en el array hay un elemento 3 - entonces pondremos la variable flag en el valor true y saldremos del ciclo con la ayuda de break:

let arr = [1, 2, 3, 4, 5]; let flag = false; // consideramos que el elemento 3 no está en el array for (let elem of arr) { if (elem == 3) { flag = true; // el elemento existe - redefinimos la variable flag break; // salimos del ciclo } }

La respuesta a la pregunta, si hay 3 en el array o no, la podemos dar solo después del ciclo. Y esta respuesta ya la tenemos: después del ciclo la variable flag pudo permanecer en false o pudo cambiar su valor a true, si el ciclo detectó un 3 en el array:

let arr = [1, 2, 3, 4, 5]; let flag = false; for (let elem of arr) { if (elem == 3) { flag = true; break; } } // aquí la variable flag es igual a true o false

Ahora, después del ciclo, podemos hacer un if, que mire la variable flag y muestre en pantalla '+++' o '---':

let arr = [1, 2, 3, 4, 5]; let flag = false; for (let elem of arr) { if (elem == 3) { flag = true; break; } } if (flag === true) { console.log('+++'); } else { console.log('---'); }

Dado un array:

let arr = ['a', 'b', 'c', 'd', 'e'];

Verifique que en este array hay un elemento 'c'. Si lo hay - muestre '+++', y si no - muestre '---'.

Escriba un código que verifique si un número es primo o no. Un número primo es divisible solo por uno y por sí mismo, y no es divisible por otros números.

Español
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Usamos cookies para el funcionamiento del sitio, análisis y personalización. El procesamiento de datos se realiza de acuerdo con la Política de privacidad.
aceptar todas configurar rechazar