2017-07-20 2 views
0

Ich habe ein Array A, die zwei Arrays enthält:Wie ersetzt man die Werte eines Arrays durch andere Elemente in swift3?

[[Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday], [Monday, Wednesday]] 

Jetzt möchte ich mit den Elementen des Arrays A ersetzen:

[[Sun, Mon, Tue, Wed, Thu, Fri, Sat], [Mon, Wed]] 

dies für i verwenden bin der Planung:

for days in operatingDays { 
    for weekdays in days 
    { 
    if (operatingDays[i] as? String == "Sun") { 
    operatingDays[i] = "Su" 
    } else if operatingDays[i] as? String == "Mon"{ 
    operatingDays[i] = "Mo" 
    } else if operatingDays[i] as? String == "Tue"{ 
    operatingDays[i] = "Tu" 
    } else if operatingDays[i] as? String == "Wed"{ 
    operatingDays[i] = "We" 
    } else if operatingDays[i] as? String == "Thu"{ 
    operatingDays[i] = "Th" 
    } else if operatingDays[i] as? String == "Fri"{ 
    operatingDays[i] = "Fr" 
    } else if operatingDays[i] as? String == "Sat"{ 
    operatingDays[i] = "Sa" 
    } 
} 
} 

Aber es zeigt den Fehler: enter image description here Aber wie man dies in Swift3 implementieren wird jede Idee b Ich schätze es.

+0

Zeig uns, was du bisher versucht hast und was genau nicht funktioniert. –

+0

Es ist das gleiche Problem von Ihrer vorherigen Frage, die Sie Tage in [String] –

+0

werfen müssen Sie müssen dem Compiler sagen, dass 'Tage' ein Array und kein Objekt vom Typ ANy ist. – Larme

Antwort

2
var input = [["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], ["Monday", "Wednesday"]] 

var output = [[String]]() 

for array in input { 
    output.append(array.map {String($0.characters.prefix(3))}) 
} 

der Ausgang [["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], ["Mon", "Wed"]]

+0

Es zeigt Wert von Typ any hat kein Mitglied "Map" –

+0

Sie müssen angeben, dass es ein Array ist, zum Beispiel mit 'als? [String] ' – Daniel

2

Guss operatingDays als etwas speziellere

for days in operatingDays as! [[String]] 
1

können Sie verwenden, um die AnyObject Art zum Gießen Array, zum Beispiel diesen Code enthalten wird Ihnen helfen könnten:

var array: [AnyObject] = [[Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday], [Monday, Wednesday]] 
array = [[Sun, Mon, Tue, Wed, Thu, Fri, Sat], [Mon, Wed]] 

Jetzt, wenn Sie w Ameise zu tun, etwas Besonderes, müssen Sie das Array Stimmen:

if let item = array[2] as? String{ 
    print(item) 
} 

Oder Sie einfach Ihre Array drucken:

for item in array{ 
    print("my item is \(item)") 
} 
1

mit diesem Versuchen, wie ich sagte, Sie brauchen Tage als [String]

werfen
for days in operatingDays { 
     if let daysArray = days as? [String] 
     { 
      for weekdays in daysArray 
      { 
       operatingDays[i] = 
       if (operatingDays[i] as? String == "Sun") { 
        operatingDays[i] = "Su" 
       } else if operatingDays[i] as? String == "Mon"{ 
        operatingDays[i] = "Mo" 
       } else if operatingDays[i] as? String == "Tue"{ 
        operatingDays[i] = "Tu" 
       } else if operatingDays[i] as? String == "Wed"{ 
        operatingDays[i] = "We" 
       } else if operatingDays[i] as? String == "Thu"{ 
        operatingDays[i] = "Th" 
       } else if operatingDays[i] as? String == "Fri"{ 
        operatingDays[i] = "Fr" 
       } else if operatingDays[i] as? String == "Sat"{ 
        operatingDays[i] = "Sa" 
       } 
      } 
     } 
    } 

Hoffe, das hilft

+0

Danke Buddy :) –

+0

@ChelseaShawra Ich arbeite an der Verbesserung dieses Codes, ich denke, mit Karte kann in mehr shorty Weg gelöst werden, wie in der angenommenen Antwort gezeigt wird –

Verwandte Themen