有没有办法从一组数字中获取第一个非零元素?
我有一个在开头有很多零的数组,我只需要第一个不是零的项目.
例如:
let array = [0,0,0,0,25,53,21,77]
Run Code Online (Sandbox Code Playgroud)
基于以上所述,结果应为25.
实现它的好方法是什么?
你可以这样得到它:
let array = [0,0,0,0,25,53,21,77]
let firstNonZero = array.first { element -> Bool in
return element != 0
}
Run Code Online (Sandbox Code Playgroud)
或者作为较短的版本:
let firstNonZero = array.first(where: { $0 != 0 })
Run Code Online (Sandbox Code Playgroud)
请注意,这firstNonZero将是一个可选的 Int,因此如果array只包含零,firstNonZero则为nil.
除了栏注:如果你想知道为什么要使用first(where:)而不是filter(_:).first,你可以检查这个问题:
filter(_ :).first和first(where :)之间有什么区别?