gpt4 book ai didi

arrays - 如何快速计算数组中的特定项目

转载 作者:搜寻专家 更新时间:2023-10-31 21:50:03 24 4
gpt4 key购买 nike

假设我有以下任何对象的数组,我正在寻找一种方法来计算数组中的项目,如下所示:

var OSes = ["iOS", "Android", "Android","Android","Windows Phone", 25]

swift 是否有一种快捷的方式来做下面这样的事情?

Oses.count["Android"]   // 3 

最佳答案

一种快速、紧凑和优雅的方法是使用 reduce 方法:

let count = OSes.reduce(0) { $1 == "Android" ? $0 + 1 : $0 }

它比 for 循环更紧凑,比 filter 更快,因为它不会生成新数组。

reduce 方法采用一个初始值(在我们的例子中为 0)和一个闭包,应用于数组的每个元素。

闭包有两个参数:

  • 前一次迭代的值(或初始值,在我们的例子中为 0)
  • 当前迭代的数组元素

闭包返回的值作为下一次迭代的第一个参数,或者在处理完最后一个元素时作为reduce方法的返回值

闭包简单地检查当前元素是否为 Android:

  • 如果不是,则返回聚合值(传递给闭包的第一个参数)
  • 如果是,则返回该数字加一

关于arrays - 如何快速计算数组中的特定项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31194938/

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