如何比较两个数组对象 - Swift 4

时间:2017-12-26 11:28:06

标签: ios arrays swift enumerate

我有2个类型为[Any]的数组 - 字典对象
而其他数组包含其他对象集[Any](第一个数组中包含第二个数组对象)

我需要找到第二个数组元素的第一个数组的索引

例如: -

let firstArray = [["key1":6],["key2":8],["key3":64],["key4":68],["key5":26],["key6":76]]

let secondArray = [["key3":64],["key6":68]]

如何找到firstArray元素的secondArray索引

2 个答案:

答案 0 :(得分:3)

let index = firstArray.index{$0 == secondArray[0]};
print("this value ", index);

将打印可选(2),基本上是2

答案 1 :(得分:1)

首先,您从secondArray获取。然后,您尝试在firstArray中找到密钥的索引。请注意,如果密钥不存在,某些值可能为零。

let firstArray = [["key1":6],["key2":8],["key3":64],["key4":68],["key5":26],["key6":76]]
let secondArray = [["key3":64],["key6":68], ["key8": 100]]

let indexes = secondArray
    .map({ $0.first?.key }) //map the values to the keys
    .map({ secondKey -> Int? in
        return firstArray.index(where:
            { $0.first?.key == secondKey } //compare the key from your secondArray to the ones in firstArray
        )
    })

print(indexes) //[Optional(2), Optional(5), nil]

我还添加了一个结果为nil的示例案例。