如何过滤重复元素并创建新数组?

时间:2017-08-16 08:11:12

标签: swift filter

我有一个重复的元素数组

let array = [1, 2, 2, 3, 5, 3, 6]

如何过滤此数组并创建如下所示的新数组:

[[1], [2, 2], [3, 3], [5], [6]]

2 个答案:

答案 0 :(得分:3)

很简单,你应该试试这个:

let array = [1, 2, 2, 3, 5, 3, 6]

let result= Set(array).map{ value in return array.filter{$0==value} }

print(result)

答案 1 :(得分:3)

如果您想保留数组原始顺序,可以执行以下操作:

let array = [1, 2, 2, 3, 5, 3, 6]
var grouped: [[Int]] = []
array.forEach { element in
    if let index = grouped.index(where: {$0.last == element}) {
        grouped[index].append(element)
    } else {
        grouped.append([element])
    }
}
print(grouped) // [[1], [2, 2], [3, 3], [5], [6]]
相关问题