有没有办法从数组中获取第一个非零元素?
我有一个在开头有很多零的数组,我只需要第一个不为零的项。
例如:
let array = [0,0,0,0,25,53,21,77]
基于以上所述,结果应为25。
实现它的好方法是什么?
答案 0 :(得分:6)
你可以这样:
let array = [0,0,0,0,25,53,21,77]
let firstNonZero = array.first { element -> Bool in
return element != 0
}
或者作为较短的版本:
let firstNonZero = array.first(where: { $0 != 0 })
请注意,firstNonZero
将是可选 Int,因此如果array
仅包含零,firstNonZero
将为nil
。< / p>
除了条形码 :如果您想知道为何使用first(where:)
代替filter(_:).first
,您可以查看以下问题:
What is the difference between filter(_:).first and first(where:)?