arrays - Swift 3 比较数组索引

标签 arrays swift indexing

如果我有两个数组并且我想比较它们的索引,例如:

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/

相关文章:

javascript - Nodejs - 转换数组

swift - 如何旋转并向从 Reality Composer 加载的实体添加线性力?

ios - 如何将光标移动到 Swift 中 UITextField 的开头?

sql-server - SQL Server : Alter a clustered primary index to an non-clustered

indexing - 我如何为不存储值本身的类型实现 IndexMut

Java - 如何获取数组中给定元素的索引

arrays - 如何在const中定义数组?

javascript - 检查字符串是否包含子字符串而不使用indexOf - Javascript

ios - 使用UIButtons在自定义键盘中输入UITextFields,键盘重新出现,而不是输入文本

c - 在 C 中读取结构(结构信息)