Je veux trier un tableau par ses objets, puis obtenir les indices comme ceci:Comment puis-je obtenir un tableau des index d'un autre tableau qui a été trié?
NSMutableArray *myArray = [[NSMutableArray alloc] initWithObjects: @"3", @"2", @"1", @"0", @"1", @"2", nil];
Je veux que les index des objets dans l'ordre croissant. Ici, parce que la valeur la plus basse a un indice de 3, les index seraient: 3, 2, 4, 1, 5, 0 ou quelque chose comme ça.
Des idées?
Merci!
Super! Cela fonctionne presque. Le seul problème est que le parce qu'il y a plusieurs objets avec le même index, il retourne seulement la valeur d'index la plus basse. (Voir dans l'exemple ci-dessus.) Savez-vous comment je peux l'obtenir pour retourner toutes les valeurs d'index? – Jonah
@Jonah: Vous avez un problème fondamental avec l'obtention de plus d'un index dans ce cas car les deux objets @ "1" et @ "1" dans votre exemple sont logiquement égaux en ce que '-isEqual:' renvoie YES et est presque certainement en fait le même objet (parce que le compilateur supprime les chaînes constantes en double). – JeremyP
Les deux chaînes sont le même objet. Vous ne serez pas en mesure de les distinguer. Ce que vous pouvez faire est de remplacer tous les objets de myArray par un espace réservé comme 'NSNull'. La boucle sera un peu plus compliquée alors, bien que ... –