比较两个字符串并获得另一个值

时间:2016-03-17 04:32:52

标签: ios objective-c

这里我面临一些问题,我从服务器获得两个数组,第一个数组就像这样

[
    "AI",
    "AI",
    "9W",
    "9W",
    "AI",
    "AI",
    "9W"
]

和第二个这样的数组,

                  [
                     {
                     "Name": "iMac",
                     "Image": null,
                     "Code": "9W"
                     },
                     {
                     "Name": "iPhone",
                     "Image": null,
                     "Code": "AI"
                     },
                   ]       

但我需要基于第一个数组代码值与第二个数组code值进行比较然后我需要得到相应的name,我试图排序和快速枚举但我无法得到,请你能帮忙,我能得到,谢​​谢

2 个答案:

答案 0 :(得分:0)

您可以使用谓词,查找Code与您要查找的值匹配的条目:

NSArray *objects = @[@{@"Name": @"iMac", @"Image": [NSNull null], @"Code": @"9W"},
                     @{@"Name": @"iPhone", @"Image": [NSNull null], @"Code": @"AI"}];

NSString *code = @"AI";
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"Code=%@", code];
NSArray *matchingObjects = [objects filteredArrayUsingPredicate:predicate];

如果你想要第一个匹配项目的名称:

NSString *name = matchingObjects[0][@"Name"];

答案 1 :(得分:0)

这是一个Swift示例:

   let arrayOne = [
        "AI",
        "AI",
        "9W",
        "9W",
        "AI",
        "AI",
        "9W"
    ]

    let arrayTwo = [
        [
            "Name":"iMac",
            "Image":"null",
            "Code": "9W"
        ],
        [
            "Name": "iPhone",
            "Image": "null",
            "Code": "AI"
        ],
    ]

    for i in arrayTwo
    {
        if arrayOne .contains(i["Code"]!)
        {
            print(i["Name"]!)
        }
    }

请尝试此代码。在这里,您将获得与第一个数组匹配的名称