当前位置: 首页 > 面试题库 >

如何在Swift中对数组排序

太叔弘壮
2023-03-14
问题内容

我想要这段代码的Swift版本:

NSArray *sortedNames = [names sortedArrayUsingSelector:@selector(localizedCaseInsensitiveCompare:)];

问题答案:
var names = [ "Alpha", "alpha", "bravo"]
var sortedNames = names.sorted { $0.localizedCaseInsensitiveCompare($1) == NSComparisonResult.OrderedAscending }

更新:根据其他SO用户的建议提供解释。

与ObjC不同,在Swift中,您有sorted()(和sort())方法,该方法采用您提供的闭包,该闭包返回一个布尔值,以指示一个元素应该在另一个元素之前(true)还是在(false)之后。$
0和$
1是要比较的元素。我使用localizedCaseInsensitiveCompare来获得您想要的结果。现在,localizedCaseInsensitiveCompare返回排序的类型,因此我需要对其进行修改以返回适当的bool值。

更新斯威夫特2: sortedsort由被替换sortsortInPlace



 类似资料:
  • 我在下面有下面的Java代码,我正在尝试将其转换为Swift。如果有人能在这个问题上帮助我,我将非常感激。 谢谢

  • 现在如何按照MyClass对象的名称对数组进行排序。

  • 我有对象 和多阵列 例如,我如何通过数组迭代得到一个名字为" Masha "的人 预先感谢

  • 假设我们有一个名为的自定义类,该类包含两个属性: 其中许多存储在一个阵列中: 如何按“fileID”升序或降序对图像数组进行排序?

  • 问题内容: 我的数组不包含任何字符串。但是它包含对象引用。每个对象引用都通过toString方法返回名称,id,作者和发布者。 现在,我需要按名称对对象数组进行排序。我知道如何排序,但是我不知道如何从对象中提取名称并对它们进行排序。 问题答案: 你有两种方法可以使用Arrays实用程序类 实现一个Comparator并将数组与比较器一起传递给sort方法,该方法将其作为第二个参数。 在对象所属的类

  • 问题内容: 如何在Swift中随机或随机排列数组中的元素?例如,如果我的阵列由52张扑克牌,我想 洗牌 的阵列,以洗牌。 问题答案: 该答案详细说明了如何在Swift 4.2+中使用快速统一的算法(Fisher- Yates)进行改组,以及如何在各个早期版本的Swift中添加相同功能。每个Swift版本的命名和行为都与该版本的变异和非变异排序方法匹配。 并且是从Swift 4.2开始原生的 用法示