【发布时间】:2019-03-19 19:49:30
【问题描述】:
我有一个包含 1000 个元素的数组,这些元素从 0 到 1 波动。
我想扫描该数组并将低于某个阈值的所有值归零,比如0.3。
我知道我可以做类似的事情
let filteredArrayOnDict = myArray.filter { $0 > 0.3}
我会得到一个包含0.3 以上元素的新数组。但这不是我想要的。我想将 0.3 以下的元素归零,并保持结果数组的元素数量相同。
我可以像这样遍历数组
var newArray : [Double] = []
for item in myArray {
if item > 0.3 {
newArray.append(item)
} else {
newArray.append(0)
}
}
但我想知道是否有一些更优雅的方法使用这些神奇的命令,如过滤器、地图、平面图等。
【问题讨论】:
-
array.map { $0 > 0.3 ? $0 : 0 } -
ahhhhhhh...我可以在地图里面做吗?惊人。请让您的评论成为答案。