Foros del Web » Programando para Internet » Javascript »

ordenamiento

Estas en el tema de ordenamiento en el foro de Javascript en Foros del Web. alguien tiene alguna rutina para ordenar un arreglo multidimensional. Ej. datos[0] = new Array("chile", "santiago", "23") datos[1] = new Array("argentina", "buenos aires", "56") datos[2] = ...
  #1 (permalink)  
Antiguo 03/06/2003, 14:02
 
Fecha de Ingreso: abril-2003
Mensajes: 12
Antigüedad: 21 años, 1 mes
Puntos: 0
ordenamiento

alguien tiene alguna rutina para ordenar un arreglo multidimensional.

Ej.

datos[0] = new Array("chile", "santiago", "23")
datos[1] = new Array("argentina", "buenos aires", "56")
datos[2] = new Array("peru", "lima", "36")
datos[4] = new Array("bolivia", "la paz", "13")

la idea es que despues pueda ordenar el arreglo por cualquiera de los 3 parametros.
  #2 (permalink)  
Antiguo 07/06/2003, 14:27
 
Fecha de Ingreso: junio-2003
Ubicación: Bilbao
Mensajes: 90
Antigüedad: 20 años, 11 meses
Puntos: 1
lo único que tendrías que hacer sería una funcion en que le envies un parámetro que te permita saber por qué quieres ordenar, y despues utilizar una ordenación cualquier. Puedes encontrarlas en internet fácilmente.
Sería algo como esto:

function ordenar(param)
{
var i,j;
switch(param)
{
case 1:
rutina ordenamiento en ese indice de la matriz
....
}
}
__________________
Code
  #3 (permalink)  
Antiguo 07/06/2003, 15:59
Avatar de Beakdan  
Fecha de Ingreso: diciembre-2001
Ubicación: Monterrey, Nuevo León
Mensajes: 433
Antigüedad: 22 años, 4 meses
Puntos: 7
Aalarcon:

//esto ordenaría los números de menor a mayor:
function ordenar(a, b) {
return parseInt(a[2]) - parseInt(b[2])
}

//Pero no estoy seguro como ordenaría esto (el pais):
function ordenar(a, b) {
return a[0] - b[0]
}

datos.sort(ordenar)

Habría que pensar en una función genérica, pero eso debe servir.
Saludos.
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 00:20.