, dropFirst() zip()
. ,
:
let a = [ 1, 2, 2, 3, 5, 4, 2, 5, 7, 9, 5, 3, 8, 10 ]
let diffs = zip(a.dropFirst(), a).map(-)
print(diffs)
// [1, 0, 1, 2, -1, -2, 3, 2, 2, -4, -2, 5, 2]
a, a.dropFirst()
a.dropFirst(2) . enumerated()
flatMap() ( compactMap() Swift 4.1).
, :
let a = [ 1, 2, 2, 3, 5, 4, 2, 5, 7, 9, 5, 3, 8, 10 ]
let localMins = zip(a.enumerated().dropFirst(), zip(a, a.dropFirst(2))).flatMap {
$0.element < $1.0 && $0.element < $1.1 ? $0.offset : nil
}
print(localMins) // [6, 11]