इसलिए मुझे ऑब्जेक्ट में निहित एक सरणी द्वारा वस्तुओं की एक सरणी को फ़िल्टर करने की आवश्यकता है
वस्तु इस तरह दिखती है
class thing {
let list = [stuff, stuff, stuff, stuff]
}
class stuff {
var name = "ugly"
}
सरणी इस तरह दिखती है
thingArray = [thing, thing, thing, thing]
और मेरा कोड अब तक इस तरह दिखता है
newArray = thingArray.filter { receipt in
return thing.thingArray.lowercaseString.containsString(searchText.lowercaseString)
}
तो मेरी समस्या यह है कि मुझे यह फ़ंक्शन काम करने के लिए नहीं मिल सकता है और मुझे वास्तव में ऑब्जेक्ट के अंदर मौजूद सरणी द्वारा ऑब्जेक्ट्स की इस सरणी को फ़िल्टर करने का एक तरीका है। किसी भी मदद की निश्चित रूप से सराहना की जाती है।
अनुलेख मैंने अभी इसका कोई फायदा नहीं हुआ है:
test = thingArray.filter {$0.list.filter {$0.name.lowercaseString.containsString(searchText.lowercaseString) == true}}
1 उत्तर
अगर मैं सही ढंग से समझूं, तो आपकी समस्या को कुछ इस तरह से हल किया जा सकता है:
class thing {
init(list: [String]) {
self.list = list
}
var list: [String]
}
let thingArray = [thing(list: ["one", "two", "three"]), thing(list: ["uno", "due", "tre"]), thing(list: ["uno", "dos", "tres"])]
let searchString = "uno"
let result = thingArray.filter {
$0.list.contains(searchString)
}
//it will print "uno", "due", "tre"
result.first?.list
संबंधित सवाल
नए सवाल
ios
iOS, Apple iPhone, iPod टच और iPad पर चलने वाला मोबाइल ऑपरेटिंग सिस्टम है। IOS प्लेटफॉर्म पर प्रोग्रामिंग से संबंधित प्रश्नों के लिए इस टैग [ios] का उपयोग करें। उन प्रोग्रामिंग भाषाओं के लिए विशिष्ट मुद्दों के लिए संबंधित टैग [उद्देश्य-सी] और [स्विफ्ट] का उपयोग करें।
Array
के बजायSet
का उपयोग करके इसे तेज कर सकते हैं