我有两个数组.让我们说:
array = "Dave", "Mike", "Joe", "Jason", "Kevin"
Run Code Online (Sandbox Code Playgroud)
和
IQ = 110, 145, 75, 122, 130
Run Code Online (Sandbox Code Playgroud)
我想按智商排序.说最高到最低.我可以对一个数组进行排序......然后我回去查看它的位置,然后重新排列其他数组.似乎必须有更好的方法来做到这一点.特别是如果阵列变大.
这就是我现在正在做的事情.
d1, d2, d3, d4, d5是我的IQ变量.我使用该sortBack数组以相同的顺序重新排列另一个数组.
NSMutableArray *myArray = [NSMutableArray arrayWithObjects:[NSString stringWithFormat:@"%d",d1], [NSString stringWithFormat:@"%d",d2],[NSString stringWithFormat:@"%d",d3], [NSString stringWithFormat:@"%d",d4],[NSString stringWithFormat:@"%d",d5], nil];
//sorting
[myArray sortUsingComparator:^NSComparisonResult(NSString *str1, NSString *str2) {
return [str1 compare:str2 options:(NSNumericSearch)];
}];
for(int i=0;i<5;i++)
{
if([[myArray objectAtIndex:i] integerValue]==d1)
{
sortBackArray[i]=1;
}
else if([[myArray objectAtIndex:i] integerValue]==d2)
{
sortBackArray[i]=2;
}
else if([[myArray objectAtIndex:i] integerValue]==d3)
{
sortBackArray[i]=3;
}
else if([[myArray objectAtIndex:i] integerValue]==d4)
{
sortBackArray[i]=4;
}
else if([[myArray objectAtIndex:i] integerValue]==d5)
{
sortBackArray[i]=5;
}
}
Run Code Online (Sandbox Code Playgroud)
Anu*_*das 19
这将是为用户创建字典的更好方法.然后根据IQ,Name等特定值进行排序.
NSArray *users = @[@"Dave",@"Mike",@"Joe",@"Jason",@"Kevin"];
NSArray *iqs = @[@110,@145,@75,@122,@130];
NSMutableArray *array = [NSMutableArray array];
for (int idx = 0;idx<[users count];idx++) {
NSDictionary *dict = @{@"Name": users[idx],@"IQ":iqs[idx]};
[array addObject:dict];
}
NSSortDescriptor *descriptor = [NSSortDescriptor sortDescriptorWithKey:@"IQ" ascending:NO];
[array sortUsingDescriptors:@[descriptor]];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2276 次 |
| 最近记录: |