MST
星途 面试题库

面试题:Swift 控制流中的嵌套控制流与逻辑优化

假设有一个二维数组,数组中的每个元素都是一个字典,字典包含两个键值对,分别是 "name"(字符串类型)和 "score"(整数类型)。请使用 Swift 控制流语句,编写代码实现找出每个子数组中 "score" 最高的元素,并将这些元素的 "name" 组成一个新数组返回。要求尽量优化逻辑,减少不必要的嵌套。
23.0万 热度难度
编程语言Swift

知识考点

AI 面试

面试题答案

一键面试
func findHighestScoredNames(_ array: [[[String : Any]]]) -> [String] {
    var result: [String] = []
    for subArray in array {
        var highestScore = Int.min
        var highestScoredName = ""
        for dict in subArray {
            guard let score = dict["score"] as? Int else { continue }
            if score > highestScore {
                highestScore = score
                if let name = dict["name"] as? String {
                    highestScoredName = name
                }
            }
        }
        result.append(highestScoredName)
    }
    return result
}

调用示例:

let twoDArray: [[[String : Any]]] = [
    [["name": "Alice", "score": 85], ["name": "Bob", "score": 90]],
    [["name": "Charlie", "score": 78], ["name": "David", "score": 88]]
]
let result = findHighestScoredNames(twoDArray)
print(result)