0
我正在嘗試編寫一個函數,用於在字典中搜索字符串,如果找到,則保留條目,否則從數據源中刪除條目。在swift中過濾字典
這是我的初始數據源的結構
[String: Array<Dictionary<String, AnyObject>>]
實例數據來源:
[
A: [
[id: 1, name: "Android"],
[id: 22, name: "Apple"],
[id: 3, name: "Apricot"]
],
B: [
[id: 33, name: "Bat"],
[id: 45, name: "Breeze"]
]
]
下面是我的函數看起來像,這裏ltrToCompare
是我的搜索字符串,
func getFilteredData(data : [String: Array<Dictionary<String, AnyObject>>], ltrToCompare : String) -> [String: Array<Dictionary<String, AnyObject>>] {
// For keeping the filtered result
var filteredData = [String: Array<Dictionary<String, AnyObject>>]()
// Looping through parent array
for (letter, arr) in data {
// Filters the internal array, below code works when arr is an array containing strings ie., [String], doesn't work for Array<Dictionary<String, AnyObject>>
let filter = arr.filter() {
return $0.lowercaseString.rangeOfString(ltrToCompare.lowercaseString) != nil
}
// Checks whether the inner array filtering returns any element
if (filter.count != 0) {
filteredData.append((letter, filter));
}
}
return filteredData
}
上述代碼適用於我的數據結構爲[String: Array<String>]
代替[String: Array<Dictionary<String, AnyObject>>]
任何幫助,非常感謝。
您的示例數據與[String:Array>]之間的關係如何? –
user3441734
@ user3441734它的結構相同。 – Rao
hm ...不是'完全',請參閱我的回答 – user3441734