获取数组中的所有值,除了“x”值Swift 3

时间:2017-04-10 09:11:38

标签: swift

我是IOS编程的新手。我有一个问题,如何获取除x值以外的数组中的所有值。假设我有如下数组:

let array : [Any] = [1,2,3,4,5,6,7,8,9,0,11,22,33,44,55,66,77,200]

如何打印除1和2之外的所有值。

我已阅读this,其使用filter并尝试使用游乐场,但我仍然没有正确的价值。任何答案对我都有帮助。提前谢谢。

3 个答案:

答案 0 :(得分:5)

我不知道为什么你把数组定义为[Any]所以我只是删除了它,数组是: -

let array = [1,2,3,4,5,6,7,8,9,0,11,22,33,44,55,66,77,200]

接下来,您可以按如下方式使用filter: -

let filtered = array.filter { (element) -> Bool in return element != 1 && element != 2 }

你可以在操场上测试它,它将打印除1和1之外的所有值。 2

您还可以使用filter的一些语法糖,如下所示: -

array.filter({ return $0 != 1 && $0 != 2 })

由于闭包是一个尾随参数,你也可以将它与参数分开如下: -

array.filter { return $0 != 1 && $0 != 2 }

另一种方法是

let filterTheseOut = [1,2]

let anotherWay = array.filter { !filterTheseOut.contains($0) }

所以在这里你基本上可以在一个单独的数组中添加要过滤的所有元素

答案 1 :(得分:1)

你可以这样做

let array : [Int] = [1,2,3,4,5,6,7,8,9,0,11,22,33,44,55,66,77,200]

print(array.filter { $0 != 1 && $0 != 2 } )

或者如果您有超过1或2个值,可以将它们放入数组

let array : [Int] = [1,2,3,4,5,6,7,8,9,0,11,22,33,44,55,66,77,200]
let unwantedValues = [1,2]
print(array.filter { unwantedValues.contains($0) == false } )

下次请粘贴您的代码,将更容易告诉您出错的原因,然后为您提供现成的解决方案。

答案 2 :(得分:0)

无需使用过滤器:

for i in array {
 if i != 1 && i != 2 {
 print i
 }
}

//这将打印除1和2之外的所有值