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
"No es un bug, es una característica no documentada"
 
última edición por Shell el Sabado, 29 Septiembre 2018, 14: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
"No es un bug, es una característica no documentada"
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Mayor De Un Array Shell General 11 Martes, 23 Septiembre 2014, 09:23 Ver último mensaje
jsbsan
No hay nuevos mensajes ¿ Array Inmutable ? Shell General 4 Jueves, 17 Octobre 2019, 22:00 Ver último mensaje
tincho
No hay nuevos mensajes Como Ordenar Un Array De Objetos De Difere... tercoIDE General 1 Martes, 21 Abril 2020, 23:02 Ver último mensaje
tercoIDE
No hay nuevos mensajes Insertar Array Dentro De Un Array Shell General 1 Lunes, 29 Junio 2020, 13:57 Ver último mensaje
vuott
 

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
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron