gpt4 book ai didi

arrays - 如何在二维数组中查找元素的索引 - Swift

转载 作者:可可西里 更新时间:2023-11-01 01:46:20 41 4
gpt4 key购买 nike

由于我是 Swift 的新手,我遇到了一个困扰我的问题。如果有人可以提供帮助,我将不胜感激。

我有一个 CellState 的二维数组:[[CellState]],我正在尝试查找 .alive 元素的所有索引。索引应作为 [[Int]] 返回,如下所示:

var cellStates = [ \\initial 2D array
[.dead, .alive, .alive],
[.alive, .dead, .dead]
]
var coordinatesOfAliveCells = [ \\2D array that I need
[0,1],
[0,2],
[1,0]
]

换句话说,获取 cellStates 二维数组中每个 .alive 的坐标。

谢谢!

最佳答案

您可以枚举细胞状态并映射结果:

enum DeadOrAlive {
case dead
case alive
}
var cellStates: [[DeadOrAlive]] = [[.dead, .dead, .alive], [.alive, .dead, .dead], [.alive, .dead, .alive], [.dead, .dead]]
let indicesOfAliveCells = cellStates.enumerated()
.map { top in top.element.enumerated()
.filter { $0.element == .alive }
.map { [top.offset, $0.offset] } }
.filter { $0.count > 0 }
.flatMap { $0 }
print(indicesOfAliveCells)

输出:

[[0, 2], [1, 0], [2, 0], [2, 2]]

这将为在每个子数组中找到的每个 .alive 实例返回一个索引对。

关于arrays - 如何在二维数组中查找元素的索引 - Swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57319843/

41 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com