假设我有两个数组
val x =Array("one","two","three")
val y =Array("1","2","3")
什么是获得新阵列最优雅的方式 [" one1"" two2"" three3"]
答案 0 :(得分:13)
使用zip
和map
应该这样做:
(x zip y) map { case (a, b) => a + b }
答案 1 :(得分:3)
与@ m-z类似,有了这样的理解,
for ( (a,b) <- x zip y ) yield a + b
这可以封装成隐含的,例如
implicit class StrArrayOps(val x: Array[String]) extends AnyVal {
def join(y: Array[String]) =
for ( (a,b) <- x zip y ) yield a + b
}
并像这样使用它,
x join y
Array(one1, two2, three3)
答案 2 :(得分:0)
替代zip
:
(0 until math.min(x.length, y.length))
.map(i => x(i) + y(i))
.toArray