Hello guys i have an array of dictionary, can you guys tell me how can i filter this data based on dictionary keys.
(
{
"mall_id" = M0550;
"mall_name" = "Amrita Shopping Complex";
},
{
"mall_id" = M0509;
"mall_name" = "Ashoka Market";
},
{
"mall_id" = M0943;
"mall_name" = "Biju Pattnaik Commercial Complex";
},
{
"mall_id" = M0457;
"mall_name" = "BMC Bhawani Mall";
},
{
"mall_id" = M0460;
"mall_name" = "BMC Keshari Mall";
},
{
"mall_id" = M0571;
"mall_name" = "BMC Market Complex";
},
{
"mall_id" = M0453;
"mall_name" = "Forum Mart";
},
{
"mall_id" = M0609;
"mall_name" = "Indradhanu Market";
},
{
"mall_id" = M0558;
"mall_name" = "Kalyani Plaza Market Complex";
},
{
"mall_id" = M0463;
"mall_name" = "Maa Barabhuja Mall";
},
{
"mall_id" = M0553;
"mall_name" = "Mahaveer Complex";
},
{
"mall_id" = M0570;
"mall_name" = "Market Building";
},
{
"mall_id" = M0452;
"mall_name" = "Pal Heights Mall";
},
{
"mall_id" = M0466;
"mall_name" = "Priyadarshini Market Complex";
},
{
"mall_id" = M0677;
"mall_name" = "Ruchika Market";
},
{
"mall_id" = M0504;
"mall_name" = "Shubham Market Complex";
},
{
"mall_id" = M0564;
"mall_name" = "Subhadra Complex";
},
{
"mall_id" = M0559;
"mall_name" = "Sultania Shopping Complex";
},
{
"mall_id" = M0552;
"mall_name" = "Tathastu Complex";
},
{
"mall_id" = M0568;
"mall_name" = "Western Tower Market Building";
}
)
what i want to achieve, whenever i type anything in search bar it will check mall_name key and return matching values in array.
Thanks and Regards
This will give you your desired output
Objective - C
NSArray *filteredData = [yourArrayContainingDictionary filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"(mall_name contains[c] %@)", searchText]];
Swift
let filteredData = yourArrayContainingDictionary.filter{
let string = $0["mall_name"] as! String
return string.hasPrefix("searchText")
}
Hope this helps you :)
Try this one. (Predicate works like SQL queries)
Obj C
NSArray *filterArray = [sourceArray filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"(mall_name contains[c] %@)", searchText]];
Swift
var filterArray: [Any] = sourceArray.filter { NSPredicate(format: "(mall_name contains[c] %@)", searchText).evaluate(with: $0) }
It will return entries whose name contain the search string.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With