вычитать Stings из массива строк в инициализаторе, используя данные ядра? - PullRequest
0 голосов
/ 14 мая 2019

Мне нужно изменить библиотеку, используя сохраненный массив.Это работает:

var library = ["Monday", "Tuesday","wednesday", "Thursday"]

var libraryOff = ["Monday","wednesday"]

library = Array(Set(library).subtracting(libraryOff))

print(library) //=>["Tuesday", "Thursday"]

Но мне нужно, чтобы оно работало с использованием чего-то вроде

var library = ["Monday", "Tuesday","wednesday", "Thursday"]

var libraryOff = [newLibrary]

library = Array(Set(library).subtracting(libraryOff))

newLibrary, являющегося coreData, который при печати читается как «понедельник, среда»,

1 Ответ

0 голосов
/ 14 мая 2019

Танец Array-Set-Array ужасен, есть гораздо более эффективный способ

var library = ["Monday", "Tuesday","wednesday", "Thursday"]
let libraryOff = ["Monday","wednesday"] // Why is wednesday lowercased?

library.removeAll{ libraryOff.contains($0) }

Чтобы использовать строку, разделенную запятыми, вы должны разделить строку и удалить возможные начальные и конечные пробельные символы

var library = ["Monday", "Tuesday","wednesday", "Thursday"]
let libraryOff =  "Monday, wednesday"
let trimmedLibraryOff = libraryOff.split(separator: ",").map{$0.trimmingCharacters(in: .whitespaces)}

library.removeAll{ trimmedLibraryOff.contains($0) }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...