我正在尝试创建一个函数,该函数将从“courseinfo”数组及其“coursename”中找到最高的“votescores”值,并将其显示在我的viewcontroller上(只是通过一个普通的uilabel——我可以自己完成)。
我该如何找到最高的“votescores”值,并有它的“coursename”。
有没有办法在当前数组中对其进行排序?这样我就可以做一些类似的事情;
highestScoreLabel.Text=课程信息[X].votescores
或者我需要创建单独的变量?
var courseInfo = [ winningCourseInfo(voteScores: 22, courseName: "Course 1"),
winningCourseInfo(voteScores: 34, courseName: "Course 2"),
winningCourseInfo(voteScores: 67, courseName: "Course 3"),
winningCourseInfo(voteScores: 12, courseName: "Course 4")]
最佳答案
银行代码1:
func ==(lhs: winningCourseInfo, rhs: winningCourseInfo) -> Bool {
return lhs.voteScores == rhs.voteScores
}
func <(lhs: winningCourseInfo, rhs: winningCourseInfo) -> Bool {
return lhs.voteScores < rhs.voteScores
}
extension winningCourseInfo : Comparable {}
let bestCourse = maxElement(courseInfo)
print(bestCourse.courseName) // "Course 3"
银行代码2:
let bestCourse = courseInfo.maxElement { $0.0.voteScores < $0.1.voteScores }
bestCourse?.courseName // "Course 3"