如何在 Swift 中获取数组中的倒数第二个元素?

J M*_*usy 1 element swift

我只想要倒数第二个元素,而不是最后两个元素,如下所示:

let streets = ["Adams", "Bryant", "Channing", "Douglas", "Evarts"]
let penultimate = streets.suffix(2)
print(penultimate) // ["Douglas", "Evarts"]
Run Code Online (Sandbox Code Playgroud)

另外,我不想使用语法streets[3],因为数组不断地填满条目。

Leo*_*bus 6

您可以简单地删除集合的最后一个元素并返回结果的最后一个元素:

extension BidirectionalCollection {
    var elementBeforeLast: Element? {
        return dropLast().last
    }
}
Run Code Online (Sandbox Code Playgroud)

用法:

if let elementBeforeLast = streets.elementBeforeLast {
    print(elementBeforeLast)  // "Douglas"
}
Run Code Online (Sandbox Code Playgroud)