swift 按某个值快速过滤二维数组

iih3973s  于 2022-12-10  发布在  Swift
关注(0)|答案(2)|浏览(155)

我有一个数组

var cinema = Array(repeating: Array(repeating: 0, count: 30), count: 5)

用户可能会输入一些如下的值

cinema[1][20] = 5
cinema[1][21] = 6

现在,我想找出所有的nun 0值和它的索引。我想也许可以通过for循环来完成,但这会花费更多的时间。有没有更简单的方法?比如array.filter?

iyzzxitl

iyzzxitl1#

cinema.map {
  $0.enumerated().filter { $0.element != 0 }
}
9gm1akwq

9gm1akwq2#

来自@Jessy的代码正确。

cinema.map {
  $0.enumerated().filter { $0.element != 0 }
}

此外,还可以尝试以下操作:

for (i, row) in cinema.enumerated() {
    for (j, cell) in row.enumerated().filter({$0.element != 0 }) {
      print("m[\(i),\(j)] = \(cell)")
  }
}

相关问题