【发布时间】:2015-07-07 05:16:18
【问题描述】:
假设我有两个数组:
var arrayA = ["Yes", "Yes2", "Not Answered", "No"]
var arrayB = ["Yes", "NA", "Yes2", "NA"]
我想通过执行以下操作从 arrayB 中删除“NA”:
var filtered = arrayB.filter({$0 != "NA"})
如何删除在 arrayA 中删除的相同索引处的项目。我考虑过使用 find() 函数,但它只返回字符串出现的第一个索引。您可以通过以下方式从数组中删除重叠:
let res = arrayA.filter { !contains(arrayB, $0) }
但是如何根据另一个数组的过滤来过滤一个数组呢?
结果应该是:
arrayBFiltered = ["Yes", "Yes2"]
arrayAFiltered = ["Yes", "Not Answered"]
有什么想法吗?
【问题讨论】:
-
您已经接受了我认为最不“迅速”的方式和最骇人听闻的方式的答案。 @Matteo 的方法更好,也更“迅速”。我确实想知道为什么您没有数据模型来保存这些数据?如果它们密切相关,那么您应该将它们放在一个模型中。