JavaScript - Ayuda_Ej!

 
Vista:

Ayuda_Ej!

Publicado por usuaria (7 intervenciones) el 11/04/2007 04:13:44
tengo un problema, he realizado un programa que me ordena los numeros en forma ascendente, me anda bien cuando trabajo con numeros de una cifra, pero si uso numeros de dos cifras nose porq no los ordena bien por ej: 5 10 2 me los ordena: 10 2 5 (es como si no me tomara la segunda cifra y considerara que es un 1).
alguna explicacion/ayuda?
gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Ayuda_Ej!

Publicado por Gonzalo (107 intervenciones) el 11/04/2007 08:19:45
Lo más probable es que estés tratando esos números como cadenas. Lo digo porque siendo cadenas, el orden correcto es ese: "10", "2", "5".

Si pones el código igual le puedo echar un vistazo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda_Ej!

Publicado por usuaria (7 intervenciones) el 11/04/2007 16:20:51
<script language="JavaScript" >
var num1,num2,num3;

num1 = prompt ("Ingrese el Nº1 : ","");
num2 = prompt ("Ingrese el Nº2 : ","");
num3 = prompt ("Ingrese el Nº3 : ","");

//si los tres numeros son diferentes:
if ((num1!=num2)&&(num1!=num3)&&(num2!=num3)){

if (num1>num2){
if(num2>num3) {
alert ("Orden Ascendente: "+num3+" "+num2+" "+num1);

te puse nada mas una parte porq sino era muy largo todo el codigo y eran todos los if anidados iguales.....por eso escribi uno solo; si los estoy tratando como cadena de carecteres como hago para modificar eso??
gracias! :)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda_Ej!

Publicado por Gonzalo (107 intervenciones) el 11/04/2007 17:04:13
Al hacer el prompt te devuelve una cadena.
Lo que tienes que hacer es después: num1 = parseInt(num1,10) para pasarlos a números.

(Si no quieres no necesitas seguir leyendo más)

También estaría bien comprobar que lo que te han devuelto es un número válido... Podrías hacer:

num1 = prompt ("Ingrese el Nº1 : ","");
num1 = parseInt(num1,10);
if (isNaN(num1)) { alert("Eso no es un número válido"); }

O mejor aún:

num1 = 0/0;
while(isNaN(num1)) {
num1 = prompt ("Ingrese el Nº1 : ","");
num1 = parseInt(num1,10);
}

Y como hay que hacerlo para cada número, podrías mejorarlo más haciendo una función:

function obtenerNumero(mensaje) {
var valor = 0/0;
while(isNaN(valor)) {
valor = prompt (mensaje,"");
valor = parseInt(valor,10);
}
return valor;
}

Y luego lo usas así:
num1 = obtenerNumero("Ingrese el Nº1 : ");
num2 = obtenerNumero("Ingrese el Nº2 : ");
num3 = obtenerNumero("Ingrese el Nº3 : ");
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda_Ej!

Publicado por usuaria (7 intervenciones) el 12/04/2007 00:49:41
GRACIAS!! :), ahora si me anda :)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar