【メモ】Dictionaryからvalueの最大値を取得してそのKeyを返す関数を作ってみた【Swift】

後々自分でも使いたくなる時が来るような気がするので、メモ程度に書いておきます。

 

全体のコード

関数の全体のコードです。

// @return 最大値valueをもつKey
    func maxDicKey(dic:[String:Int]) -> String{
    //valueの最大値を取り出す
        let max = dic.values.maxElement();
        var maxKey:String = ""
        //辞書の中身をひとつずつ見ていく
        for (key,value) in dic{
            if value == max{
                print("dic key is \(key) , dic value is \(value)")
                if maxKey == ""{
                    maxKey = key
                }else{
                    print("同じ値の人がいます")
                }
                
            }
        }
        return maxKey
    }

 

使う時はラベル等で

label.text = "\(maxDicKey(dic))が優勝"

 

解説?はいらないかもしれませんが少しだけ

 

辞書型のvalueの最大値の取得は

dic.values.maxElement();

でできます。

 

中身を1つずつ見ていく場合は

for (key,value) in dic{

}

でできます

 

この中で、valueの値と最大値の値が等しい時にそれを返すようにしています。

 

ただし、最大値をもつKeyが1つとは限らないので、複数のKeyを返すならば配列等を返り値にすれば良いと思います。

複数からランダムで1つ返す〜等もできます

 

 

—————–ここからひとりごと—————–

 

久しぶりの記事更新です。

Swiftに関する記事なんて本当にいつぶりだろうという感じですね…

次のアプリというのを結構前から考えていて、企画書っぽいものも一応作って見たのですが、ずっとSwiftで作るかcocos2d-xを使用してc++で書くかを迷っていまして、最近は本当にうーんうーんと悩みながらごろごろだらだら過ごしていました。

結局、cocos2d-xを用いて作っていこうかなぁと思っています。

cocos2d-xを使ったアプリ制作は初めてになりますし、1冊本で勉強したのもunityで雨アガリを作る前のことだったので、正直ほとんど覚えていません。

まずは勉強から、という感じです。

 

そのため今後はcocos2d-x系の記事が多くなるんじゃないかなぁと思います。

 

わりとグラフィック面が面倒なアプリを作ろうとしているので、今までで一番規模は大きくなるんじゃないかなと思います。ゲームというほどでもないですが、ゲームです。

 

もう少し更新頻度も上げられる用に頑張りたいです。それではでは。

2018/04/12追記 一応Swift4に
もっと上手いことできる気がするけど頑張れなかった。


とりあえず[String:Int]型限定ですが
参考になれば。
Swift ,
コメントは認証制です。詳しくは下記の注意をお読みください。お気軽にコメントお願いします!

コメントを残す

コメント時の注意

「Twitter」「Facebook」「Google+」「WordPress」のいずれかのアカウントをお持ちの方は各アカウントと連携することでコメントできます。 コメントしたことはSNSに流れませんので、アカウントをお持ちの方はこちらの方法でコメントを投稿して下さると嬉しいです。 アカウントをお持ちでない方はメールアドレスで投稿することができます。 初回コメント時は承認後に表示されます。

Related Memo...

記事を書くほどでもないけれどメモっておきたいこと

テスト投稿。

例えばiphone7 の画面サイズ

750 × 1334
半分375 × 667

iOS
more