我想检索数组的第一个n
元素,这些元素可能是nil,也可能少于n个元素。有没有" swifty"这样做的方法?
这有效:
n=2
array = [1,2,3,4,5]
array.prefix(upTo: 2) // [1,2]
但我也希望它与
一起使用array = [1] //I want to get [1]
或
array = nil //I want nil as return
谢谢!
答案 0 :(得分:3)
您可以使用Optional.map
和Sequence.prefix
:
let n = 2
let array: [Int]? = [1,2,3,4,5]
let firstN = array.map { Array($0.prefix(n)) }
结果firstN
是一个可选数组。如果nil
,则为array
是nil
,是一个包含给定数组最多n
个元素的数组
否则。
如果是ArraySlice
结果足以满足您的目的,然后就可以了
简化为
let firstN = array?.prefix(n)
正如@Duncan建议的那样。