使用reduce(into:_:)过滤相邻的相等元素
Using reduce(into:_:) to filter adjacent equal elements
Swift 标准库 API 指定 Array 有一个方法 reduce(into:_:)
returns 使用给定闭包组合序列元素的结果。
API 文档提到 "you can use this method on an array of integers to filter adjacent equal entries"。有人可以举例说明如何做到这一点吗?
您可以像这样消除相同数量的游程:
let numbers = [1, 1, 2, 2, 2, 3, 4, 4, 5, 4, 3]
let filtered = numbers.reduce(into: [Int]()) { newArray, number in
if newArray.last != number { newArray.append(number) }
}
print(filtered)
[1, 2, 3, 4, 5, 4, 3]
Swift 标准库 API 指定 Array 有一个方法 reduce(into:_:)
returns 使用给定闭包组合序列元素的结果。
API 文档提到 "you can use this method on an array of integers to filter adjacent equal entries"。有人可以举例说明如何做到这一点吗?
您可以像这样消除相同数量的游程:
let numbers = [1, 1, 2, 2, 2, 3, 4, 4, 5, 4, 3]
let filtered = numbers.reduce(into: [Int]()) { newArray, number in
if newArray.last != number { newArray.append(number) }
}
print(filtered)
[1, 2, 3, 4, 5, 4, 3]