Foros del Web » Programando para Internet » Javascript »

Ordenar nombres (array)

Estas en el tema de Ordenar nombres (array) en el foro de Javascript en Foros del Web. Holas, Necesito ordenar una matiz de nombres que introduce el usuario. El problema es que no consigo saber cómo: -hacer que salga del bucle al ...
  #1 (permalink)  
Antiguo 06/11/2005, 17:46
 
Fecha de Ingreso: noviembre-2005
Mensajes: 5
Antigüedad: 18 años, 5 meses
Puntos: 0
Ordenar nombres (array)

Holas,

Necesito ordenar una matiz de nombres que introduce el usuario. El problema es que no consigo saber cómo:

-hacer que salga del bucle al pulsar cancelar y muestre los nombres introducidos.
-que el array sea infinito, indeterminado (no limitado a 4 nombres).
-que se compruebe que se ha introducido al menos un nombre y comprobar que no se utilizan números.

Este es el código que utilizo. ¿Qué me faltaría?

<html>
<head><title>Ordenar nombres</title></head>
<body>
<script language="javascript">

var nombres = new Array (4);

for ( i = 0; i<4; i++)
{
nombres[i] = prompt("Introduce el nombre " + i, "");
}

{
document.write("Los nombres introducidos son: " +nombres + ", " +"<br>");
document.write("Los nombres ordenados son: " +nombres.sort() + ", ");
}
</script>
</body>
</html>

Ya sé que es algo básico, pero es que estoy empezando y reconozco que no se me da muy bien el javascript je je.

Saludos
  #2 (permalink)  
Antiguo 06/11/2005, 18:48
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 8 meses
Puntos: 39
Hola Fuhira! Y bienvenido
Este script, cumple con lo que pides.
Código HTML:
<html>
<head><title>Ordenar nombres</title></head>
<body>
<script language="javascript">
var nombres = new Array ();
i = 0;
do
{
	t = prompt("Introduce el nombre " + (i+1), "");
	if (t != null )
	{
		if (t.search(/\d/i) != -1) alert("Se introdujo un numero!\nIntentelo otra vez.");
		else nombres[i++] = t;
	}
}
while (t != null)
if (nombres.length == 0) alert("No se intrudujo ningun nombre!");
else
{
	document.write("Los nombres introducidos son: " +nombres + ", " +"<br>");
	document.write("Los nombres ordenados son: " +nombres.sort() + ", ");
}
</script>
</body>
</html> 
Si no entiendes algo, solo hasnoslo saber, y con mucho gusto te ayudaremos.
suerte
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #3 (permalink)  
Antiguo 07/11/2005, 16:52
 
Fecha de Ingreso: noviembre-2005
Mensajes: 5
Antigüedad: 18 años, 5 meses
Puntos: 0
¡Dios mío! ¡Cuánta amabilidad! Muchísimas gracias. ¡Qué bien haber encontrado un sitio así...!

Tan sólo me queda una duda:

- A mí tampoco me funcionó lo del espacio después de la coma. Los nombres aparecen representados con sólo la coma por medio. ¿Qué extraño no?
- ¿Se puede hacer que el último nombre no tenga una coma detrás? Es mera curiosidad.

Muchas gracias de nuevo.
  #4 (permalink)  
Antiguo 07/11/2005, 17:29
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 8 meses
Puntos: 39
Has estos cambios.
Código HTML:
document.write("Los nombres introducidos son: " +nombres + ".<br>\n");
document.write("Los nombres ordenados son: " +nombres.sort() + ".");
Si quieres que aparezca un espacio despues de cada coma, creo que habria que hacerlo manualmente. Es decir, hacer un ciclo, for por ejemplo.
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:16.