我有一个重复的元素数组
let array = [1, 2, 2, 3, 5, 3, 6]
如何过滤此数组并创建如下所示的新数组:
[[1], [2, 2], [3, 3], [5], [6]]
答案 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]]