Swift - 两个数字之间的数组过滤值

时间:2017-11-07 12:13:41

标签: arrays swift filtering

我有一个小问题。

我有一个带整数值的数组:

let array = [99, 42, 34, 19, 167, 30, 49, 39, 75, 175, 270, 540]

如何获得19到167之间的所有值?通过所有整数值迭代必须有更好的方法吗? 这是迅速的。所以我正在迅速寻找答案。 提前谢谢

3 个答案:

答案 0 :(得分:1)

您可以使用filter和能够过滤范围的模式匹配运算符~=

let array = [99, 42, 34, 19, 167, 30, 49, 39, 75, 175, 270, 540]
let range = 19...167
let filteredArray = array.filter{ range ~= $0 }

考虑此运算符不会对边19和167进行过滤。结果为

// [99, 42, 34, 19, 167, 30, 49, 39, 75]

要排除边写20...16820..<167,结果为

// [99, 42, 34, 30, 49, 39, 75]

答案 1 :(得分:0)

在Swift中,您仍然可以使用过滤器

执行此操作
let array = [99, 42, 34, 19, 167, 30, 49, 39, 75, 175, 270, 540]
let newArray = array.filter{$0 > 19 && $0 < 167}
print(newArray)

答案 2 :(得分:0)

let filtered = array.filter { (20..<167).contains($0) }