ein sortiertes Array angezeigt Ich möchte die drei höchsten Werte mit den Namen zusammen angezeigt werdenSwift - mit Tasten
Mein Code:
let gradesofStudent = [
"Elias Brown": 80,
"Baris Yan": 99,
"Christian Najm": 70,
"Sam Chakra": 90,
"Alain Elliot": 55,
"Georges Obama": 77,
]
var y = " "
var name = " "
func mainFunction(stDictionary: Dictionary<String, Int>) -> ArraySlice<String>{
var emptyDic: [String: String] = [:]
for (keys, value) in gradesofStudent {
if value > 0 && value <= 59 {y = "F"}
else if value >= 60 && value <= 69 {y = "D"}
else if value >= 70 && value <= 79 {y = "C"}
else if value >= 80 && value <= 89 {y = "B"}
else {y = "A"}
emptyDic[keys] = y
}
var arrayGrades = (Array(emptyDic).sorted{$0.1 < $1.1}).map{(k,v) in return(k:v)}
var firstThree = arrayGrades[0..<3]
return(k: firstThree)
}
let v = mainFunction(stDictionary:gradesofStudent)
print (v)
ich die folgende Ausgabe bekommen:
[ "A", "A", "B"]
Was ich bekommen möchte, ist etwas wie ["Baris Yan": "A", "Sam Chakra": "A", "Elias Brown": "B "]
Da ich das Wörterbuch nicht direkt sortieren kann, kann ich mir nicht vorstellen, wie ich die Namen anzeigen soll.
Sie können Ihr Leben so viel einfacher gestalten, wenn Sie einen 'struct Student' mit' var name: String', 'var grade: Int' members, berechnete Eigenschaft' var letterRepresentation: String {...} 'und einem ** verwenden würden. Array ** von Instanzen. Übrigens: Ein Wörterbuch ist per Definition ungeordnet. – vadian
Swift 2 oder 3? Ihr Code gibt einen Fehler in Swift 3 –