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

问题描述:

Swift标准库API指定Array具有方法reduce(into:_:),该方法返回使用给定闭包合并序列元素的结果。使用reduce(into:_ :)过滤相邻的相等元素

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

你可以消除相等数量的游程是这样的:

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]