El tip de hoy esta enfocado en como evitar que un ciclo siga corriendo una vez que hemos conseguido nuestro objetivo, supongamos que tenemos un array con los paises del mundo y las capitales:

Código :

var paises = [{name:'Argentina', captial:'Buenos Aires'}, {name:'Mexico', capital:'Mexico'}, {name:'España', capital:'Madrid'},........]


Si tenemos el nombre del pais y queremos la capital de ese pais podemos revisar cada objeto en el array y cuando encontremos el nombre del pais tendremos la capital esto se puede hacer asi:

Código :

var pais = 'mexico';
var capital = null;
for (var iPais = 0; iPais < paises.length; iPais++)
{
  if (pais.toLowerCase() == paises[iPais].name.toLowerCase())
  {
    capital = paises[iPais].capital;
  }
}


Esto funciona perfectamente pero si el pais lo encontramos inmediatamente y el array tiene 1000 elementos de todas maneras compara 1000 veces, que podemos hacer? Podemos usar break que rompera el ciclo en el que esta dentro (si tiene ciclo adentro de ciclo, solo rompera el de mas adentro). Nnuestro codigo queda asi:

Código :

var pais = 'mexico';
var capital = null;
for (var iPais = 0; iPais < paises.length; iPais++)
{
  if (pais.toLowerCase() == paises[iPais].name.toLowerCase())
  {
    capital = paises[iPais].capital;
  }
}
alert("La capital de " + pais + " es " + capital);


En el proximo tip analizaremos como funciona la busqueda en una funcion, y romper con return, y que hacer si no encontramos el pais