How to return first 5 objects of Array in Swift?

后端 未结 13 1754
春和景丽
春和景丽 2020-12-07 09:47

In Swift, is there a clever way of using the higher order methods on Array to return the 5 first objects? The obj-c way of doing it was saving an index, and for-loop throug

13条回答
  •  误落风尘
    2020-12-07 10:34

    For an array of objects you can create an extension from Sequence.

    extension Sequence {
        func limit(_ max: Int) -> [Element] {
            return self.enumerated()
                .filter { $0.offset < max }
                .map { $0.element }
        }
    }
    

    Usage:

    struct Apple {}
    
    let apples: [Apple] = [Apple(), Apple(), Apple()]
    let limitTwoApples = apples.limit(2)
    
    // limitTwoApples: [Apple(), Apple()]
    

提交回复
热议问题