数组中的数组/字典isEmpty shotrcut

时间:2016-07-25 13:55:32

标签: arrays swift dictionary is-empty

假设我有一些球队在每个球队中都有不同的球员:

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} 

即使阵列中的队员中没有其他球员,但是它显示我是假的(当我打印时)...因为球队的名字仍然在里面。

  1. 使用.isEmpty或使用.count = 0?
  2. 之间有所不同
  3. 如何让代码中的if缩短?
  4. 提前致谢!!

2 个答案:

答案 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 }
}