首页 > 解决方案 > 替换 ArraySlice 中的值

问题描述

我试图过滤一个ArraySlice<Float>以将低于 -5000 和高于 5000 的值替换为 -5000 和 5000。我可以应用一个条件,但如何同时应用这两个条件?
我想补充一点,如果值高于 5000,则将其替换为 5000,我该怎么做?

 filteredData.append(contentsOf: data.map({ return $0 < -5000 ? -5000 : $0}))

标签: arraysswift

解决方案


您可以只使用一个if-else语句来检查这两个条件

let filteredData = floatData.map { value -> Float in
    if value > 5000 {
        return 5000
    } else if value < -5000 {
        return -5000
    } else {
        return value
    }
}

或者,您可以使用 和 的组合minmax您的值限制在指定范围内。

let filteredData = floatData.map { value -> Float in max(min(value, 5000), -5000) }

推荐阅读