Otrzymuję tę tablicę z pliku csv:

data = [["Alexandra", "Female", "Club House", "CA", "English", "Drama Club"], ["Andrew", "Male", "Manager", "SD", "Math", "Lacrosse"], ["Anna", "Female", "Manager", "NC", "English", "Basketball"], ["Becky", "Female", "Gym & Fitness", "SD", "Art", "Baseball"], ["Benjamin", "Male", "Club House", "WI", "English", "Basketball"], ["Carl", "Male", "Life Guard", "MD", "Art", "Debate"],[""]]

Utworzono jedną tablicę do zapisania nazwy i jedną tablicę do zapisania pozycji dla indeksu takiego:

for index in data {
            employee.append(index[0])
            PosEmployee.append(index[2])
        } 

Kiedy go uruchamiam, pojawia się błąd: błąd krytyczny: indeks poza zakresem Myślę, że ponieważ ostatnia tablica data jest pustą tablicą, mam rację?

Jak wyczyścić ostatnią pustą tablicę? próbuję tego w viewDidLoad, ale to nie zadziałało


self.data = Array.filter({$0 != ""})



Help needed.
0
Sơn Nguyễn Trường 10 marzec 2020, 07:16

2 odpowiedzi

Najlepsza odpowiedź

Chcesz tego?

let flat = data.flatMap { $0 }.filter{ $0 != ""}

Wynik: [„Alexandra”, „Female”, „Club House”, „CA”, „English”, „Drama Club”, „Andrew”, „Male”, „Manager”, „SD”, „Math”, „ Lacrosse ”,„ Anna ”,„ Kobieta ”,„ Menedżer ”,„ NC ”,„ Angielka ”,„ Koszykówka ”,„ Becky ”,„ Kobieta ”,„ Siłownia i fitness ”,„ SD ”,„ Sztuka ”,„ Baseball ”,„ Benjamin ”,„ Mężczyzna ”,„ Club House ”,„ WI ”,„ English ”,„ Basketball ”,„ Carl ”,„ Male ”,„ Life Guard ”,„ MD ”,„ Art ”,„ Debata"]

0
Chris 10 marzec 2020, 04:54

Więc chcesz tego?

    let flat = [data.flatMap { $0 }.filter{  $0.count > 0  }]

Wynik:

[[„Alexandra”, „Female”, „Club House”, „CA”, „English”, „Drama Club”, „Andrew”, „Male”, „Manager”, „SD”, „Math”, „Lacrosse „,„ Anna ”,„ Kobieta ”,„ Menedżer ”,„ NC ”,„ Angielka ”,„ Basketb

0
Chris 10 marzec 2020, 06:40