gpt4 book ai didi

ios - 创建从字典数组中过滤的数组,并将数组作为输入

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:07:36 24 4
gpt4 key购买 nike

我有一个字典和一个数组,如下所示

字典:

{
"value": [
{
"ctgid": "1",
"catename": "tow"
},
{
"ctgid": "2",
"catename": "towrequest"
},
{
"ctgid": "3",
"catename": "electrical"
},
{
"ctgid": "5",
"catename": "plumber"
},
{
"ctgid": "6",
"catename": "maintenance"
},
{
"ctgid": "7",
"catename": "home"
},
{
"ctgid": "8",
"catename": "computer"
},
{
"ctgid": "9",
"catename": "1q2w"
}
]
}

类名数组:

(
tow,
towrequest,
plumber
)

Array 中有一个 catename 列表。根据上面的字典,我想在上面的数组中创建与 catename 相关的 ctgid 数组。

所以我的最终输出应该是:

catgid 数组:

(
1,
2,
5
)

注意:我可以用循环来做,但我不想使用任何循环。

最佳答案

//Json data
NSString *jsonString = @"{\"value\":[{\"ctgid\":\"1\",\"catename\":\"tow\"},{\"ctgid\":\"2\",\"catename\":\"towrequest\"},{\"ctgid\":\"3\",\"catename\":\"electrical\"},{\"ctgid\":\"5\",\"catename\":\"plumber\"},{\"ctgid\":\"6\",\"catename\":\"maintenance\"},{\"ctgid\":\"7\",\"catename\":\"home\"},{\"ctgid\":\"8\",\"catename\":\"computer\"},{\"ctgid\":\"9\",\"catename\":\"1q2w\"}]}";
NSData *data = [jsonString dataUsingEncoding:NSUTF8StringEncoding];
//Converting the data into NSDictionary
NSDictionary *json = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];

//Get the array of objects
NSArray *array = [NSArray arrayWithArray:[json objectForKey:@"value" ]];

//Category filter names
NSArray *filteCatename = [NSArray arrayWithObjects:@"tow",@"towrequest",@"plumber",nil];
//NSPreicate to filter the array using "in" constrain
NSArray *filtered = [array filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"(catename in %@)", filteCatename]];

您可以使用 NSPredicate 直接过滤 NSArray 而无需循环。

关于ios - 创建从字典数组中过滤的数组,并将数组作为输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22368986/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com