Я два массива:Как отфильтровать массив, чтобы соответствовать другому массиву
var filteredTitles = [String]()
var filteredTypes = [String]()
Я отфильтровывать первый массив в качестве части использования SearchBar. Порядок элементов может полностью измениться. Тем не менее, я не могу отфильтровать второй массив так же, как и первый, потому что я не хочу принимать его во внимание при поиске. Но я бы хотел, чтобы второй массив находился в том же порядке, что и первый. Итак, повторю. Как я могу фильтровать массив, чтобы он соответствовал другому по индексам?
Пример:
var filteredArray = ["One", "Two", "Three"]
//Sort the below array to ["1", "2", "3"], the order of the upper array
var toBeFilteredArray = ["2", "1", "3"]
без использования алфавитного или числовой порядок, так что не будет делать в этом случае.
EDIT: Рассел: Как сортировать названия, как это:
// When there is no text, filteredData is the same as the original data
// When user has entered text into the search box
// Use the filter method to iterate over all items in the data array
// For each item, return true if the item should be included and false if the
// item should NOT be included
searchActive = true
filteredData = searchText.isEmpty ? original : original.filter({(dataString: String) -> Bool in
// If dataItem matches the searchText, return true to include it
return dataString.range(of: searchText, options: .caseInsensitive) != nil
})
Что сказал Рассел. (проголосовали.) Пытаясь сохранить 2 массива в синхронизации, бесполезно сложна. Просто иметь единственный массив, который содержит все необходимые вам поля, и фильтровать/сортировать этот единственный массив. –
Как я могу получить доступ к одной строке, например, «1»? – Tuomax
Я обновил ответ, чтобы показать, как вы обращаетесь к отдельным полям – Russell