数组 – 如何在Swift中的Bools数组中找到许多True语句
发布时间:2020-12-14 05:32:50 所属栏目:百科 来源:网络整理
导读:我是一个新开发人员,似乎无法弄清楚如何在布尔数组中找到True语句的数量.我知道如何通过索引而不是按价值来查找.任何援助将不胜感激. let arrayElement = [Bool](repeating: false,count: 10)var before: [[Bool]] = [[Bool]](repeating: arrayElement,count
我是一个新开发人员,似乎无法弄清楚如何在布尔数组中找到True语句的数量.我知道如何通过索引而不是按价值来查找.任何援助将不胜感激.
let arrayElement = [Bool](repeating: false,count: 10) var before: [[Bool]] = [[Bool]](repeating: arrayElement,count:10) for i in 0 ..< 10 { for j in 0 ..< 10 { if arc4random_uniform(3) == 1 { before[i][j] = true } } }
计算一维数组中真实条目数的方法
一种方法是过滤Bool元素数组(对于true),并简单地计算过滤数组中剩余元素的数量 let arr = [false,true,false,true] let numberOfTrue = arr.filter{$0}.count print(numberOfTrue) // 3 另一种方法是减少(展开)数组并为每个等于true的元素递增计数器 let arr = [false,true] let numberOfTrue = arr.reduce(0) { $0 + ($1 ? 1 : 0) } print(numberOfTrue) // 3 或者,传统的for循环(带有条件的循环签名)方法,与r??educe方法相当: let arr = [false,true] var trueCounter = 0 for bElem in arr where bElem { trueCounter += 1 } print(trueCounter) // 3 应用于您的示例:使用joined()来实现一维数组 通过在[[Bool]]数组上简单地应用.joined()来顺序构造[Bool]数组,上面的方法可以很容易地应用于数组数组(Bool元素:type [[Bool]]). /* 'before' is of type [[Bool]],constructed as described in the question */ let numberOfTrueAlt1 = before.joined().filter{$0}.count let numberOfTrueAlt2 = before.joined().reduce(0) { $0 + ($1 ? 1 : 0) } var numberOfTrueAlt3 = 0 for bElem in before.joined() where bElem { numberOfTrueAlt3 += 1 } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
- JsonCpp遍历json
- vb.net 教程 3-4 窗体编程 公共控件4 MaskedText
- Vue验证码60秒倒计时功能简单实例代码
- Magento XML使用before/after放置块几乎没有工作
- ruby-on-rails – Rails 4:fields_for in field
- Flex中如何利用width属性,将CheckBox的label标签
- ruby-on-rails – 如何使Rails 4.2与Postgres Js
- ibm liberty server.xml config example
- xilinx Spartan 6 FPGA 配置 SPI Flash 芯片
- ruby-on-rails – formtastic-bootstrap安装
热点阅读