在下面的代码中,我想首先检查数组[b]中是否有小于100的元素,然后将所有这些元素添加到另一个名为resultArray的数组中。就目前而言,小于100的元素将被打印到控制台,但我想将这些元素添加到resultArray中。在Swift 3中执行此操作的最佳方法是什么?
var value = 1
var resultArray: [Int]
var b = [23,34,67,2,89,76,874]
for var c in b {
if c < 100 {
print("Numbers less than 15 are \(c) ")
}
c += 1
}
答案 0 :(得分:0)
使用简单的过滤器:
let b = [23,34,67,2,89,76,874]
let r = b.filter { $0 < 100 }
print(r)
输出:
[23,34,67,2,89,76]
如果您想使用自己开始使用的代码,则需要将c
附加到resultArray
并进行其他一些小调整:
var resultArray: [Int] = []
let b = [23,34,67,2,89,76,874]
for c in b {
if c < 100 {
resultArray.append(c)
}
}
print(resultArray)
另一个选择(感谢Martin R)将是:
var resultArray: [Int] = []
let b = [23,34,67,2,89,76,874]
for c in b where c < 100 {
resultArray.append(c)
}
print(resultArray)
答案 1 :(得分:0)
最好使用a启动数组名称,并根据条件生成数组,由
给出 var a = [23,34,67,2,89,76,874]
var resultArray = [Int]()
for var x in a {
if x < 100 {
resultArray.append(x)
}
}
这里,x在每次迭代时只占一个值。如果条件匹配,那么x的值将添加到结果数组中。
如果要对resultArray进行排序并打印到控制台,请在循环后尝试以下行:
resultArray.sort()
print(resultArray)
排序后的输出是:
[2, 23, 34, 67, 76, 89]