我只是是否有可能有一个对象数组MyObject
,MyObject
得到一个变量isTrue
,除了循环整个数组以检查该数组中的所有对象是否为真,是否有任何短手要做所以?谢谢。这是可能的检查在swift数组中的所有值是真的,而不是逐一循环?
回答
更新:的Xcode 8.2•斯威夫特3.0.2
您可以使用包含检查,如果它不存在虚假如下:
let boolsArray = [true,true,true,true]
if !boolsArray.contains(false) {
print(true)
}
class MyObject {
let isTrue: Bool
required init(_ isTrue: Bool) {
self.isTrue = isTrue
}
}
let myObj1 = MyObject(true)
let myObj2 = MyObject(true)
let myObj3 = MyObject(true)
let objects = [myObj1,myObj2,myObj3]
if !objects.contains{!$0.isTrue} {
print(true)
}
如果你有一类定义如下:
class Obj {
var isTrue: Bool
init(isTrue: Bool)
{
self.isTrue = isTrue
}
}
一个数组定义为这样:
let array = [Obj(isTrue: true), Obj(isTrue: false), Obj(isTrue: true)]
那么你可以使用这个速记是否有IsTrue运算领域的假值检测:
array.filter{!$0.isTrue}.count > 0
一个简单的方法来做到这一点是使用谓词:
let notAllTrue = contains(array) {
item in item.isTrue == false
}
let allTrue =!contains(boolArray){item.isTrue } –
@leonardoSavioDabus:但是对程序员更友好很多!s) –
你可以使用一个隐含的arg'{!$ 0.isTrue}' – Alexander
尝试这样做 -
println((boolArr.filter {!($0 as! MyObject).isTrue}).count)
@LeonardoSavioDabus他只是问是否有一个简写来做,读他的问题。 – kabiroberai
而不是逐一循环 –
@LeonardoSavioDabus他说,循环**整个**阵列 – kabiroberai
使用reduce
功能的纯功能性的方法:
let boolArray = [true,true,true,true]
let isAllTrue = boolArray.reduce(true, combine: {$0 && $1}) // true
- 1. 检查数组中的所有布尔值是否为真?
- 2. 是否有可能检查一个数组中是否存在一个完整的没有循环的对象?
- 3. 检查所有数组有值,而不是空
- 4. 检查数组中的所有元素是否具有相同的值Swift
- 5. 的Javascript检查所有按钮是在一个循环
- 6. 如何检查数组的值是否为=== null而没有循环?
- 7. 这真的是一个可能的InvalidOperationException?
- 8. 是否有可能在Emberjs中循环计算的数组?
- 9. 检查数组中的所有值是否不相等(java)
- 10. 检查数组中的所有值是否存在于表中
- 11. 检查一个数组的位置是否真的没有定义或不是
- 12. 检查值是否存在于数组的所有索引中
- 13. 检查Python for循环的所有迭代中是否有错
- 14. 循环来检查文件是否存在,而不DIR功能
- 15. 检查数组中是否有一个数组是空的
- 16. 检查数组成员是真的
- 17. 创建一个JavaScript for循环而不是我所有的if's
- 18. 检查数组中的任何对象的值是否为真?
- 19. 检查在foreach循环中的数组是否为空
- 20. C++:用于循环打印地址而不是值的数组
- 21. for循环打印的,而不是我数组值
- 22. 究竟是不是唯一的ID的可能性在一个循环中
- 23. 是否有可能在“while”循环中更改变量的值?
- 24. 如何检查循环中的所有内容是否正确?
- 25. 我怎样才能得到setMethod一次输入值,而在一个循环?这是不可能的吗?
- 26. 不能做循环的webdriver,而元素是不可见的
- 27. Javascript:for循环返回布尔值数组而不是数组
- 28. 检查数组中的所有元素是否都是相同的值
- 29. 检查的值是到一个数组
- 30. 是否有可能在foreach循环中填充数组
boolArray正存储一个对象,而不是纯布尔值。 – DNB5brims
你知道这个和使用for循环之间的性能差异吗? –
这将取决于你的阵列的大小和你在阵列上搜索的第一个元素的位置 –