数组的前n个元素(可以是nil)

时间:2018-03-29 11:54:09

标签: ios arrays swift

我想检索数组的第一个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

谢谢!

1 个答案:

答案 0 :(得分:3)

您可以使用Optional.mapSequence.prefix

let n = 2
let array: [Int]? = [1,2,3,4,5]
let firstN = array.map { Array($0.prefix(n)) }

结果firstN是一个可选数组。如果nil,则为arraynil,是一个包含给定数组最多n个元素的数组 否则。

如果是ArraySlice 结果足以满足您的目的,然后就可以了 简化为

let firstN = array?.prefix(n)

正如@Duncan建议的那样。