arrays - Swift Array of Ints - 查找与前一个元素的差异大于 10 的索引
问题描述
我有以下数组:
let array = [1,3,2,1,4,3,99,3,5,2,1,45]
我想创建一个新数组 - 其中与前一个元素的差异大于 10 的元素设置为 0。
// [1,3,2,1,4,3,0,3,5,2,1,0]
目前,我正在创建一个具有差异的新数组,然后过滤该数组以找到大于 10 的数组,然后比较这些数组 - 我觉得这一切都过于复杂了。
let diffArray = zip(array.dropFirst(), array).map(-)
let filteredArray = diffArray.filter {abs($0) > 10}
谢谢!
解决方案
这应该这样做。不过没有什么花哨的。
let array = [1,3,2,1,4,3,99,3,5,2,1,45]
func resetValues(withDifference difference: Int, in array: inout [Int]) {
for index in array.indices.dropFirst() {
if abs(array[index - 1] - array[index]) >= 10 {
array[index] = 0
}
}
}
resetValues(withDifference: 10, in: &array)
print(array)
推荐阅读
- wordpress - 如何让页面在refrsh(wordpress)上保持在同一位置?
- javascript - 使用 javascript 将用户输入显示到列表中
- matlab - 比较两个信号
- flutter - 在 Flutter 中的 PageController 上的 PageView 中使用空值检查运算符
- python - 这段 Python 代码是做什么的?我看到了它让我很困惑
- bash - 基于位置的子集 ls
- javascript - Safari 注入 Shadow DOM带有“溢出:自动”的元素?
- unit-testing - WinAMS 自动化 hookcode
- html - CSS 计数器丢失(但不完全重置)其计数
- cloudkit - 错误 CloudKit 仪表板 - 加载环境状态时出现问题