使用reduce(into:_ :)来过滤相邻的相等元素

时间:2017-12-02 23:19:51

标签: arrays swift fold

Swift标准库API指定Array有一个方法reduce(into:_:),它返回使用给定闭包组合序列元素的结果。

API文档提到“您可以在整数数组上使用此方法来过滤相邻的相等条目”。有人可以提供一个如何做到这一点的例子吗?

1 个答案:

答案 0 :(得分:2)

你可以消除这样的相同数字的运行:

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]