gpt4 book ai didi

ios - 如何获取按索引配对的两个单独的 Int 数组的值,然后对某些对进行条件运算?

转载 作者:可可西里 更新时间:2023-11-01 02:16:52 26 4
gpt4 key购买 nike

因此,对于我的第一个项目,我一直致力于构建一个高尔夫记分卡应用程序。我有一个数组用于每个球员 18 洞得分和另一个类(class)的单独数组用于类(class)标准杆。我可以从总标准杆中减去总分,得到分数 90(+18) 的最终结果。然而,如果所有的洞都有标准杆,但球员只完成了 9 个洞,那么比分将看起来像 45(-27)。默认情况下,玩家得分为 0,所以我正在考虑尝试做

zip(playerScoreArray, courseParArray).enumerate().filter() 

我会过滤掉所有 playerScore 洞,!= 0,将它们加在一起,取每个洞的标准杆并将它们加在一起,然后从 courseParNubers 中减去完成的 playerHoleScores 总数。这将给我一个准确的 + 或 - 仅针对他们到目前为止完成的洞。

我已经使用了 Array.reduce(0, combine +) 但除此之外,我仍在学习更复杂的操作集合和闭包的方法。

我要完成的示例:

let playerScoreArray = [7, 5, 6, 4, 0, 0, 0, 0, 0]
let holeParArray = [4, 3, 5, 5, 4, 3, 4, 4, 4]
// get result 7-4, 5-3, 6-5, 4-5 = +5
// currentResult = 22-36 = -14

谢谢

最佳答案

您可以在 reduce 中进行该测试,并且只添加那些玩家得分不为零的测试:

let total = zip(playerScoreArray, holeParArray).reduce(0) { (sum, pair) in
return pair.0 == 0 ? sum : sum + pair.0 - pair.1
}

或者在调用 reduce 之前过滤掉那些对:

let total = zip(playerScoreArray, holeParArray).filter({ $0.0 > 0 }).reduce(0) { (sum, pair) in
return sum + pair.0 - pair.1
}

关于ios - 如何获取按索引配对的两个单独的 Int 数组的值,然后对某些对进行条件运算?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37364162/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com