Geben Sie in Swift mehrere Sortierbedingungen an

Als ich zwei Sortierbedingungen festlegen wollte, fragte ich mich, wie ich sie etwa eine Stunde lang schreiben sollte. Qiita hat keinen ähnlichen Artikel und vor allem war ich beeindruckt von "Ich sollte so schreiben !!", also teile es bitte.

import Foundation

// Struktur, die Gewicht und Größe hält
struct Person {
   let seq: Int
   let weight: Int
   let height: Int
   init(seq: Int, weight w: Int, height h: Int) {
       self.seq = seq
       self.weight = w
       self.height = h
   }
}

func sortTest() {
// Testdaten erstellen
// Anzahl der Personen
   let N = 10
   let w = [50, 42, 69, 80, 79, 81, 70, 53, 59, 50]
   let h = [184, 170, 170, 169, 193, 154, 147, 180 ,170, 171]
   let personDate = (0..<N).map {
       Person(seq: $0, weight: w[$0], height: h[$0])
   }
   
drucken ("____________ vor dem Sortieren")
   _ = personDate.map {
print ("Identifikationsnummer \ ($ 0.seq), Größe: \ ($ 0.height), Gewicht: \ ($ 0.weight)")
   }
   
// Erste Bedingung: Kürzeste zuerst
// Zweite Bedingung: Wenn die Höhe gleich ist, sortieren Sie in aufsteigender Reihenfolge des Gewichts
   let sortedPersonDate = personDate.sorted {
       if $0.height != $1.height { return $0.height < $1.height }
       else {
           return $0.weight < $1.weight
       }
   }
   
print ("__________________ Nach dem Sortieren")
   _ = sortedPersonDate.map {
print ("Identifikationsnummer \ ($ 0.seq), Größe: \ ($ 0.height), Gewicht: \ ($ 0.weight)")
   }
}

____________________ Vor dem Sortieren
Identifikationsnummer 0, Größe: 184, Gewicht: 50
Identifikationsnummer 1, Größe: 170, Gewicht: 42
Identifikationsnummer 2, Größe: 170, Gewicht: 69
Identifikationsnummer 3, Größe: 169, Gewicht: 80
Identifikationsnummer 4, Größe: 193, Gewicht: 79
Identifikationsnummer 5, Größe: 154, Gewicht: 81
Identifikationsnummer 6, Größe: 147, Gewicht: 70
Identifikationsnummer 7, Größe: 180, Gewicht: 53
Identifikationsnummer 8, Größe: 170, Gewicht: 59
Identifikationsnummer 9, Größe: 171, Gewicht: 50
____________________ Nach dem Sortieren
Identifikationsnummer 6, Größe: 147, Gewicht: 70
Identifikationsnummer 5, Größe: 154, Gewicht: 81
Identifikationsnummer 3, Größe: 169, Gewicht: 80
Identifikationsnummer 1, Größe: 170, Gewicht: 42
Identifikationsnummer 8, Größe: 170, Gewicht: 59
Identifikationsnummer 2, Größe: 170, Gewicht: 69
Identifikationsnummer 9, Größe: 171, Gewicht: 50
Identifikationsnummer 7, Größe: 180, Gewicht: 53
Identifikationsnummer 0, Größe: 184, Gewicht: 50
Identifikationsnummer 4, Größe: 193, Gewicht: 79

Recommended Posts

Geben Sie in Swift mehrere Sortierbedingungen an
[swift5] So legen Sie die Farbe hexadezimal fest
Mit Java Stream nach mehreren Bedingungen sortieren
Nach mehreren Feldern in der Klasse sortieren
Teilen wird in Swift zu 0
Mehrdimensionales Array in Swift
[Neta] Sleep Sort in Java
Fotobibliothek mit Swift UI
Verwenden Sie mehrere Kontrollkästchen in Rails6!
Geben Sie den MySQL-Socket in Hanami an
Swift: Eine Falle zum Festlegen mehrerer Anfangselemente in einem Array