[Swift]配列の配列をdistinct(uniq) - contains?
2015/05/17
swift
swiftです。
配列の配列、二次元配列をいいたいのですが、これをdistinctしたいです。
なんかうまくいかなくて....
やりたいことは、こんな感じ
このコードはうまくいきました。
ですので、 できるかなと思って同じようにしてできなくて。
僕の理解不足がばればれですが。
で、こんな感じにして実現
配列の配列、二次元配列をいいたいのですが、これをdistinctしたいです。
let arr = [[1,2],[1,2],[1,2],[4,4],[5,5]]これを、
[[1, 2], [4, 4], [5, 5]]にしたいわけです。
なんかうまくいかなくて....
やりたいことは、こんな感じ
let arr = [1,1,1,2]
func distinct(arr:[Int]) -> [Int] {
var arr2:[Int] = []
for a in arr {
if contains(arr2, a) {
cotinue
} else {
arr2.append(a)
}
}
return arr2
}
let arr2 = distinct(arr)
println("\(arr2)")
このコードはうまくいきました。
ですので、 できるかなと思って同じようにしてできなくて。
僕の理解不足がばればれですが。
で、こんな感じにして実現
let arr = [[1,2],[1,2],[1,2],[4,4],[5,5]]という感じ。
func distinct(arr:[[Int]]) -> [[Int]] {
var arr2:[[Int]] = []
for a in arr {
if contains(arr2, { $0 == a }) {
continue
} else {
arr2.append(a)
}
}
return arr2
}
let arr2 = distinct(arr)
println("\(arr)")
println("\(arr2)")
: