gpt4 book ai didi

ios - Swift 数组运行总计到 x 项

转载 作者:可可西里 更新时间:2023-11-01 01:06:23 25 4
gpt4 key购买 nike

Swift 有一个很棒的函数 .reduce 可以提供整个数组的总和:

let array = [1, 2, 3, 4, 5]
let addResult = array.reduce(0) { $0 + $1 }
// addResult is 15

let multiplyResult = array.reduce(1) { $0 * $1 }
// multiplyResult is 120

但是有没有一种简单的方法可以将它用于仅达到特定元素的运行总计?例如,对于 [1, 2, 3, 4, 5] 的数组,是否有一种方法可以使用 .reduce 函数返回仅到第 3 项 (1+2+3=6) 的运行总计?

(我知道我总是可以做一个循环,只是想用 swift 学习所有的可能性)

最佳答案

除了使用数组的 reduce 方法,如@MartinR 的回答,还可以使用全局 reduce 函数和 enumerate

enumerate 函数返回元组序列,其第一个元素(名为 index)是元素索引,第二个(名为 element ) 是元素值。

所以你可以用下面的代码达到同样的效果:

let sum = reduce(enumerate(array), 0) {
$0 + ($1.index < 3 ? $1.element : 0)
}

此方法的优点是您可以应用更复杂的规则来排除元素 - 例如,对具有偶数索引的所有元素求和:

let sum = reduce(enumerate(array), 0) {
$0 + ($1.index % 2 == 0 ? $1.element : 0)
}

关于ios - Swift 数组运行总计到 x 项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28250560/

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