如何将一个Seq中的值替换为Scala中另一个Seq的值?

cod*_*dez 3 functional-programming scala

我有序列:

val A = Seq(1,3,0,4,2,0,7,0,6)
val B = Seq(8,9,10)
Run Code Online (Sandbox Code Playgroud)

我需要一个新的序列,其中0被替换为第二个序列的值:

Seq(1,3,8,4,2,9,7,10,6)
Run Code Online (Sandbox Code Playgroud)

如何在功能风格中做到这一点?

Ben*_*ich 8

你可以map在这里使用,将所有0替换为下一个元素b(通过转换b为迭代器,并使用next):

val a = Seq(1,3,0,4,2,0,7,0,6)
val b = Seq(8,9,10).iterator
a.map { e => if (e == 0) b.next else e } //Seq(1,3,8,4,2,9,7,10,6)
Run Code Online (Sandbox Code Playgroud)