如何找到数组的第一个非零元素?

时间:2018-01-16 11:11:29

标签: ios arrays swift

有没有办法从数组中获取第一个非零元素?

我有一个在开头有很多零的数组,我只需要第一个不为零的项。

例如:

let array = [0,0,0,0,25,53,21,77]

基于以上所述,结果应为25。

实现它的好方法是什么?

1 个答案:

答案 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:)?