Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Ordenar Array De Array
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Ordenar Array De Array 
 
Buenas tardes!.

En este ejemplo tengo un nombre y una edad.
La idea es ordenar por edades.

Public Sub Main()
  
  Dim nombre_edad As New Variant[][]
  Dim una_persona As Variant
  
  una_persona = ["Juan", 32]
  nombre_edad.Add(una_persona)
  
  una_persona = ["Luis", 45]
  nombre_edad.Add(una_persona)
  
  Stop
  
  nombre_edad.Sort(gb.Descent)
  
  Stop
  
End
 


Cuando llega al primer Stop se presenta algo como esto:

 ordenarporedad_1_2

Ahora ordenamos por orden descendente.

 ordenar_por_edad_2_2

Añadamos ahora una tercera persona:


...
   'Usemos un tercero
  
  una_persona = ["Rosa", 17]
  nombre_edad.Add(una_persona)
  
  Stop
  
  nombre_edad.Sort(gb.Descent)
  
  Stop
  
End
 


 a_adotercerapersona

A lo que Rosa aparece desordenada.
Ordenamos una vez más.

 ordennovalido

Aunque ha situado correctamente a Rosa, el orden de Juan y Luis es el que tenía después de ordenar la primera vez.
Con lo que aparentemente no se debe ordenar dos veces, añadir datos y luego ordenar.

¿ Cómo sabe que no quiero ordenar por nombres ?.  

¿ Y si no esta ordenando por números ?...

Si va a la inversa y por letras...entonces es lo correcto...
R L J...va por la primera ordenando es lo que parece.

Saludos
 




===================
Gambas Básico
“Si no puedes explicar algo de forma sencilla, entonces es que tú no lo entiendes bien.” Albert Einstein
 
última edición por Shell el Sabado, 29 Septiembre 2018, 15:17; editado 2 veces 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Ordenar Array De Array 
 
Esto puede tener más sentido:  [ edad, nombre ]

Public Sub Main()
  
  Dim edad_nombre As New Variant[][]
  Dim una_persona As Variant
  
  una_persona = [32, "Juan"]
  edad_nombre.Add(una_persona)
  
  una_persona = [45, "Luis"]
  edad_nombre.Add(una_persona)
  
  Stop
  
  edad_nombre.Sort(gb.Descent)
  
  Stop
  
  'Usemos un tercero
  
  una_persona = [50, "Rosa"]
  edad_nombre.Add(una_persona)
  
  Stop
  
  edad_nombre.Sort(gb.Descent)
  
  Stop
  
End
 


Equivalencia con Python.

edades_nombre = []

# Paso a paso

# Añadiendo una persona
persona = [32, 'Juan' ]
edades_nombre.append(persona)

# Ordenando inversamente
edades_nombre.sort(reverse = True)

# Mostrando
print (edades_nombre)

# Añadiendo otra persona
persona = [ 45, 'Luis']
edades_nombre.append(persona)

# Ordenando inversamente
edades_nombre.sort(reverse = True)

# Mostrando
print (edades_nombre)

# Añadiendo una persona
persona = [50, 'Rosa' ]
edades_nombre.append(persona)

# Ordenando inversamente
edades_nombre.sort(reverse = True)

# Mostrando
print (edades_nombre)
 


Salida:

Citar:

[[32, 'Juan']]
[[45, 'Luis'], [32, 'Juan']]
[[50, 'Rosa'], [45, 'Luis'], [32, 'Juan']]


 

Saludos
 




===================
Gambas Básico
“Si no puedes explicar algo de forma sencilla, entonces es que tú no lo entiendes bien.” Albert Einstein
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
Ocultar¡Este tema fue útil?

 

Elegir valoración:                       

Media de valoración Valoración mínima Valoración máxima Número de valoraciones
0.00 0 0 0
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Error: Not An Array? pittusa General 0 Lunes, 26 Julio 2010, 23:46 Ver último mensaje
pittusa
No hay nuevos mensajes Array Multidimensional. fdogilna General 3 Jueves, 07 Octobre 2010, 19:37 Ver último mensaje
fdogilna
No hay nuevos mensajes Array De Una Clase netking86 General 2 Miercoles, 16 Marzo 2011, 13:26 Ver último mensaje
netking86
No hay nuevos mensajes Array Multidimensional Shell General 4 Viernes, 21 Junio 2013, 09:37 Ver último mensaje
Shell
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
No puede descargar archivos
No puede publicar eventos en el calendario