📜  按字母顺序排序数组 swift 4 - Swift (1)

📅  最后修改于: 2023-12-03 15:10:08.916000             🧑  作者: Mango

按字母顺序排序数组 Swift 4

在 Swift 4 中,要按字母顺序对数组进行排序非常容易。我们可以使用 sort() 方法和闭包来完成这个任务。

方法一:按字母顺序排序字符串数组

我们可以通过将每个字符串与其 sorted() 的版本进行比较,来按字母顺序排序数组。

let arr = ["orange", "apple", "pear", "banana"]
let sortedArr = arr.sorted { $0.localizedCaseInsensitiveCompare($1) == .orderedAscending }
print(sortedArr) // ["apple", "banana", "orange", "pear"]

上述代码中,我们首先定义了一个字符串数组 arr。然后,我们使用 sorted() 方法并提供闭包来排序该数组。在闭包中,我们使用 $0.localizedCaseInsensitiveCompare($1) == .orderedAscending 来比较字符串大小写不敏感地通过字母排序。最后,我们使用 print() 将排序后的数组打印出来。

方法二:按字母顺序排序自定义对象数组

如果我们想按字母顺序对自定义对象数组进行排序,我们需要为对象定义一个比较函数。

假设我们有一个 Person 类型:

class Person {
    let name: String
    init(name: String) {
        self.name = name
    }
}

现在,我们希望按照 name 属性的字母顺序对 Person 对象数组进行排序。

let arr = [Person(name: "Lily"), Person(name: "Tom"), Person(name: "Lucy"), Person(name: "Annie")]
let sortedArr = arr.sorted { $0.name.localizedCaseInsensitiveCompare($1.name) == .orderedAscending }
print(sortedArr.map { $0.name }) // ["Annie", "Lily", "Lucy", "Tom"]

在上面的示例中,我们定义了一个 Person 类型的数组 arr。我们使用 sorted() 方法并提供闭包来排序该数组。在闭包中,我们访问每个 Person 对象的 name 属性,并将它们进行比较。最后,我们使用 map() 方法来返回已排序的 Person 对象的名称数组,并将其打印出来。

结论

在 Swift 4 中,按字母顺序排序数组非常容易。我们可以使用闭包和 sorted() 方法来按字母顺序排序字符串数组和自定义对象数组。