gpt4 book ai didi

swift - 合并 reduce 和 filter Swift

转载 作者:行者123 更新时间:2023-11-28 15:49:46 25 4
gpt4 key购买 nike

我有 2 个代码片段:

let names = ["Scarlet", "Stan", "Mike", "Walter", "Jessie"]

let reduceStr = names.reduce("", { x, y in

x + y
})

print(reduceStr)


let reduceStrWithFilter = names.filter { (x) -> Bool in

return x.characters.count > 5
}

我有点不适应 swift 语法,我想先结合这两个函数来制作过滤器,然后将 reduce 应用于过滤后的数组。

最佳答案

这比你想象的要容易:

let names = ["Scarlet", "Stan", "Mike", "Walter", "Jessie"]

var bothReducedAndFiltered = names.filter { $0.characters.count > 5 }.reduce("", +)
print(bothReducedAndFiltered)

或者如果你真的想拆分 2:

var filtered =  names.filter { $0.characters.count > 5 }
var reducedAfterFilter = filtered.reduce("", +)
print(reducedAfterFilter)

或者更短的解决方案:

var bothReducedAndFiltered = names.filter { $0.characters.count > 5 }.joined()

这会打印: ScarletWalterJessie

解释:filterreduce 方法中,$0 表示迭代中的当前元素。

希望对您有所帮助!

关于swift - 合并 reduce 和 filter Swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42468724/

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