假设我有一些球队在每个球队中都有不同的球员:
var PlayersShowByTeams:[String:[String]]=[:]
现在..如果此数组为空,我想在我的代码中执行某些操作
我的问题是..我可以用快捷方式检查数组是否为空?代替.. 制作另一个所有团队名称的数组:
var teams:[String] = []
然后通过标志和(&&)来检查每个队员是否都是空的:
if(playersShowByTeam[teams[0].count=0 && playersShowByTeam[teams[1].count=0 && playersShowByTeam[teams[2].count=0 //.. and so on
{
//do something
}
如果我试图像这样使用.isEmpty:
if (playerShowByTeam.isEmpty){//do something}
即使阵列中的队员中没有其他球员,但是它显示我是假的(当我打印时)...因为球队的名字仍然在里面。
提前致谢!!
答案 0 :(得分:0)
func allTeamsEmpty(teams: [String : [String]]) -> Bool {
return teams.filter{teamName, teamMembers in !teamMembers.isEmpty}.isEmpty
}
此功能会过滤字典,以便保留非空团队。如果在过滤后字典为空,那么所有团队必须已被过滤掉为非空。
答案 1 :(得分:0)
检查是否存在 1个团队:
var hasTeams: Bool {
return PlayersShowByTeams.keys.count > 0
}
检查至少 1个团队是否有玩家:
var hasTeamWithPlayers: Bool {
return PlayersShowByTeams.contains{ !$1.isEmpty }
}