Loading...

[Swift]配列の配列をdistinct(uniq) - contains?

swiftです。

配列の配列、二次元配列をいいたいのですが、これを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)")
という感じ。

リアクション: 
swift 1412201974132370265

コメントを投稿

ホーム item

このブログを検索

Random Posts

Popular Posts

Labels

ADS