Ho un array che contiene dizionari in esso; quindi, come posso ordinare l'array in base ai valori della chiave del dizionario?Come ordinare un array che contiene dizionari?
risposta
Se ogni elemento dell'array è un dizionario contenente un determinato tasto, è possibile ordinare l'array utilizzando un descrittore di ordinamento. Per esempio, se ogni elemento è un dizionario contenente una chiave chiamata "nome":
NSSortDescriptor *sortByName = [NSSortDescriptor sortDescriptorWithKey:@"name"
ascending:YES];
NSArray *sortDescriptors = [NSArray arrayWithObject:sortByName];
NSArray *sortedArray = [array sortedArrayUsingDescriptors:sortDescriptors];
come ordinare il valore int? –
perché non si utilizza un dizionario ordinato in cui la proprietà di elementi ordinati viene già con la struttura dati?
Si prega di controllare fuori here
Spero che questo aiuti.
La risposta di cui sopra condivisa da Bavarious aiutato me.Just vuole aggiungere un altro thing.If si desidera ordinare un uso serie mutabile qualcosa come il codice qui sotto
NSSortDescriptor *sortByName = [NSSortDescriptor sortDescriptorWithKey:@"name" ascending:YES];
NSArray *sortDescriptors = [NSArray arrayWithObject:sortByName];
NSMutableArray *sortedArray = [[NSMutableArray sortedArrayUsingDescriptors:sortDescriptors]mutableCopy];
l'altro modo per raggiungere questo sarebbe utilizzando sortedArrayUsingComparator:
metodo
NSArray *sortedArray = [array sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2) {
return [[obj1 valueForKey:@"value"] compare:[obj2 valueForKey:@"value"]];
}];
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)
Utilizzare il collegamento [modifica] per spiegare come funziona questo codice e non solo fornire il codice, poiché una spiegazione è più probabile che aiuti i futuri lettori. Vedi anche [risposta]. –
questa domanda è presente in Stackoverflow http://stackoverflow.com/questions/4767219/how-to-sort-a-nsarray-which-contains-nsdictionary/4767282#4767282 –