Swift 3 – Ordonarea unui array care are o dependență cu alt array

Sunt în situația în care am următorii vectori:

let array1: [String] = [“Diana”, “Cornel”, “Andrei”, “Stefan”, “Traian”]

let array2: [Int] = [1, 0, 2, 0, 3]

 

Vreau să ordonez lexicografic array1 și implicit pe cel de-al doilea care e dependență al celui dintâi – array2.

 

1. Combin cei doi vectori într-un vector cu zip:

let combined = zip(array1, array2).sorted {$0.0 < $1.0}

print(combined) // “[(“Andrei”, 2), (“Cornel”, 0), (“Diana”, 1), (“Stefan”, 0), (“Traian”, 3)]”

 

2. După ce am ordonat acest vector, extrag cei doi vectori cu map:

let sorted1 = combined.map {$0.0}

let sorted2 = combined.map {$0.1}

print(sorted1)  // “[“Andrei”, “Cornel”, “Diana”, “Stefan”, “Traian”]”

print(sorted2)  // “[2, 0, 1, 0, 3]”

 

 

 

Share Button

Stefan

Leave a Reply

Your email address will not be published. Required fields are marked *