连接两个 Scala 数组

Concat two Scala Array

我有两个像这样的数组:

val l1 = Array((1,2,3), (6,2,-3), (6,2,-4))
val l2 = Array("a","b","c")

我想将数组中 l2 的值放在 l1 中的相同位置,并获得这样的最终数组

Array((1,2,3,"a"), (6,2,-3,"b"), (6,2,-4,"c"))

我在想类似的事情:

val l3 = l1.map( code...)

但是我不知道如何在 l1 上映射期间在 l2 上迭代。
你有什么想法吗?

您需要 map 遍历用于访问每个数组中的元素的索引。

(0 until l1.length).map{ idx =>
  (l1(idx)._1, l1(idx)._2, l1(idx)._3, l2(idx))
}
res0: IndexedSeq[(Int, Int, Int, Char)] = Vector((1,2,3,a), (6,2,-3,b), (6,2,-4,c))

可以使用 Zipping 以这种方式组合集合。

l1.zip(l2).map{ case (x,y) => (x._1, x._2, x._3, y) }