如果我有两个数组并且我想比较它们的索引,例如:
let var a1 = ["1", "2", "3"]
let var a2 = ["3", "2", "3"]
我想打印一些东西来说明哪个索引不一样,例如:
if a1[0] != a2[0] && a1[1] == a2[1] && a1[2] == a2[2]{
print("Index 0 is not the same.")
我是否必须再写 7 个这样的陈述来显示全部正确/全部错误/索引 1 和 1 错误等的所有 8 种可能性?
谢谢!
最佳答案
你可以这样得到所有的索引:
let diffIndex = zip(a1, a2).enumerated().filter {$1.0 != $1.1}.map {$0.offset}
解释:
zip
产生一个序列对enumerated()
为序列添加一个索引filter
只保留具有不同值的对map
获取索引,并构建结果序列。
运行此
let a1 = ["1", "2", "3", "4"]
let a2 = ["3", "2", "3", "5"]
这会产生一个序列 [0, 3]
关于arrays - Swift 3 比较数组索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39987260/