objective c - ejemplos - ¿Cómo ordenar una matriz que contiene diccionarios?
ambigüedad (5)
Tengo una matriz que contiene diccionarios en ella; Entonces, ¿cómo puedo ordenar la matriz de acuerdo con los valores clave del diccionario?
¿por qué no usa un diccionario ordenado donde la propiedad de los elementos ordenados ya viene con la estructura de datos?
Por favor, mira here
Espero que esto ayude.
La otra forma de lograr esto sería utilizando el método sortedArrayUsingComparator:
NSArray *sortedArray = [array sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2) {
return [[obj1 valueForKey:@"value"] compare:[obj2 valueForKey:@"value"]];
}];
La respuesta compartida de Bavarea me ayudó. Solo quiero agregar una cosa más. Si desea ordenar una matriz mutable, use algo como el siguiente código.
NSSortDescriptor *sortByName = [NSSortDescriptor sortDescriptorWithKey:@"name" ascending:YES];
NSArray *sortDescriptors = [NSArray arrayWithObject:sortByName];
NSMutableArray *sortedArray = [[NSMutableArray sortedArrayUsingDescriptors:sortDescriptors]mutableCopy];
Si cada elemento de la matriz es un diccionario que contiene una clave determinada, puede ordenar la matriz utilizando un descriptor de clasificación. Por ejemplo, si cada elemento es un diccionario que contiene una clave llamada "nombre":
NSSortDescriptor *sortByName = [NSSortDescriptor sortDescriptorWithKey:@"name"
ascending:YES];
NSArray *sortDescriptors = [NSArray arrayWithObject:sortByName];
NSArray *sortedArray = [array sortedArrayUsingDescriptors:sortDescriptors];
let arrDescriptor = NSSortDescriptor(key: "order", ascending: true)
let sortDescriptors: NSArray = [arrDescriptor]
let sortedArray = instancesubArray.sortedArray(using: sortDescriptors as [AnyObject] as [AnyObject] as! [NSSortDescriptor])
print(sortedArray)