このコードは、ディクショナリで最高得点をプリントアウトします。 2番目に高いスコアを印刷するにはどうしたらいいですか?私はトップ2の得点を印刷したい。ジクレープリントでトップ2の最高得点をプリント
import UIKit
var people: [[String:Any]] = [
[
"firstName": "Sam",
"lastName": "Newton",
"score": 13
],
[
"firstName": "Joe",
"lastName": "Mckenzie",
"score": 23
],
]
var topPerson = people[0]
var bestScore = topPerson["score"] as! Int
var bestScore1 = topPerson["score"] as! Int
for person in people {
if let score = person["score"] as? Int {
if bestScore < score {
bestScore = score
topPerson = person
}
}
}
if let first = topPerson["firstName"] as? String,
let second = topPerson["lastName"] as? String {
print("\(first) \(second)")
}
辞書の配列を「スコア」で並べ替え、配列の最初の2つの要素を印刷します。 – DonMag
ソートは常にオプションですが、上位2つの要素だけが必要な場合は同じループを実行できますが、次回の実行では一番上のエントリを無視します。 – xander
@DonMagのソーティングソリューションは良い解決策です。次回は、インデントを正しく使用してコードを少しだけ読みやすくしてください –