Buscando en una lista

Enunciado
  En esta ocasión tenemos una lista de nombres y deseamos determinar si un nombre en concreto está en la lista, y si es así en que posición se encuentra. Si el nombre no está en la lista la función debe devolver un valor negativo.
El código
Solución Sección Head
<SCRIPT TYPE="text/javascript" LANGUAGE="JavaScript">
<!--
function buscarItem(lista, valor){
var ind, pos;
for(ind=0; ind<lista.length; ind++)
   {
    if (lista[ind] == valor)
      break;
    }
pos = (ind < lista.length)? ind : -1;
return (pos);
}
// -->
</SCRIPT>
Sección Body
<SCRIPT TYPE="text/javascript" LANGUAGE="JavaScript">
<!--
var lista1 = new Array('Juan', 'Pedro', 'Luis', 'María', 'Julia');
var cad = 'María';
var pos = buscarItem(lista1, cad);
if (pos >=0)
   document.write(cad+' está en la posición '+ pos );
else
   document.write(cad+ ' no está.');
// -->
</SCRIPT>
Comentarios
  La lista se construye como un Array en el que almacenamos nombres. La variable cad contiene el nombre que deseemos buscar. La función funciona con dos argumentos: la lista de nombres y el valor a buscar, en ella hacemos un bucle para recorrer la variable lista hasta encontrar el nombre buscado, si lo encontramos detenemos el bucle con la instrucción break. Si el bucle ha terminado sin encontrar el nombre la variable ind será igual a la longiutd del Array (recuerda que los índices van desde 0 a la longitud del array menos 1), mientras que si se ha encontrado el nombre su valor será menor que esa longitud.. Observa la sentencia despues del bucle: en pos ponemos el valor del ind si se ha encontrado el nombre y si no ponemos -1, es la forma abreviada de usar una sentencia if...else.
     
Envía esta página a un amigo. Te lo agradecerá.   Poner esta página como página de inicio