gpt4 book ai didi

arrays - 二维scala数组迭代

转载 作者:行者123 更新时间:2023-12-04 14:50:25 26 4
gpt4 key购买 nike

我有一个 bool 类型的二维数组(不重要)
以非函数风格迭代数组很容易。
FP风格怎么做?

var matrix = Array.ofDim[Boolean](5, 5) 

例如,我想遍历给定列的所有行并返回与特定函数匹配的 int 列表。
示例:对于第 3 列,如果 (4, 3), (5, 3) 处的单元格与特定函数匹配,则遍历第 1 到 5 行以返回 4, 5。非常感谢
def getChildren(nodeId: Int) : List[Int] = {
info("getChildren("+nodeId+")")

var list = List[Int]()
val nodeIndex = id2indexMap(nodeId)

for (rowIndex <- 0 until matrix.size) {
val elem = matrix(rowIndex)(nodeIndex)
if (elem) {
println("Row Index = " + rowIndex)
list = rowIndex :: list
}
}

list
}

最佳答案

关于什么

(1 to 5) filter {i => predicate(matrix(i)(3))}

哪里 predicate你的功能是?

请注意,用 (5,5) 初始化的索引从 0 到 4。

更新 : 基于你的例子
def getChildren(nodeId: Int) : List[Int] = {
info("getChildren("+nodeId+")")
val nodeIndex = id2indexMap(nodeId)

val result = (0 until matrix.size).filter(matrix(_)(nodeIndex)).toList
result.forEach(println)
result
}

如果您愿意,您也可以在 fiter 中移动打印件,如果您希望它与示例中的完全相同,则反转列表

关于arrays - 二维scala数组迭代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7386284/

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