arrays - 替换 ArraySlice 中的值
问题描述
我试图过滤一个ArraySlice<Float>
以将低于 -5000 和高于 5000 的值替换为 -5000 和 5000。我可以应用一个条件,但如何同时应用这两个条件?
我想补充一点,如果值高于 5000,则将其替换为 5000,我该怎么做?
filteredData.append(contentsOf: data.map({ return $0 < -5000 ? -5000 : $0}))
解决方案
您可以只使用一个if-else
语句来检查这两个条件
let filteredData = floatData.map { value -> Float in
if value > 5000 {
return 5000
} else if value < -5000 {
return -5000
} else {
return value
}
}
或者,您可以使用 和 的组合min
将max
您的值限制在指定范围内。
let filteredData = floatData.map { value -> Float in max(min(value, 5000), -5000) }
推荐阅读
- ruby - 从导致错误的 eval 字符串中检索行
- julia - 仅生成唯一排列
- c++ - 从新分配的内存分配给一个对象
- javascript - 如何遍历 Socket.object 并且只返回匹配的值?
- string - 为什么我的单元格在谷歌表格中没有转换为大写?
- objective-c - Objective C,如何解码这个 UTF16 字符串?
- python - 使用 Python 3.7 将十进制转换为 base58check
- java - 从 control-m 启动 spring 批处理作业
- node.js - 如何使用 nodeJS 从标准输入读取文件
- html - 填充、边距和背景颜色使移动版本未优化?