我想知道,当没有结果时,是否有办法获得filter
的结果?
目前,作为一种工作,我有一个ZStack并将结果覆盖在"No results"
消息之上。
但是我想知道是否有一个条件从过滤器?
if(array.count > 0) {
ForEach(array.filter({...}) { item in
// do things if found
// <-- check if no results here
}
} else {
Text("No results at all")
}
我知道这违背了过滤的想法,但我想我应该检查一下,以防我在所有的搜索中错过了什么!
你需要检查你的是否过滤了if
中array为空:
let filteredArray = array.filter({...})
if !filteredArray.isEmpty {
ForEach(filteredArray) { item in
// do things if found
}
} else {
Text("No results at all")
}
已经有答案了。但我想再加一个变化。与其使用if
,不如使用guard
语句:
guard let filteredArray = array.filter({...}),
!filteredArray.isEmpty else {
Text("No results at all")
return
}
ForEach(filteredArray) { item in
// do things if found
}
你可以在这里阅读更多关于它们的区别:
- Swift: guard let vs if let