Scala 如何比较两个数组并找到元素不同的索引?

Scala 如何比较两个数组并找到元素不同的索引?,scala,Scala,Scala中是否有内置函数(比较后无法获取索引) 以下是我已经拥有的一些JavaScript代码: var diffIndexes = []; var newTags = ['a','b','c']; var oldTags = ['c']; var diffValues = arrayDiff(newTags, oldTags); console.log(diffIndexes); // [0, 1] console.log(diffValues); // ['a', 'b'] "

Scala中是否有内置函数(比较后无法获取索引)

以下是我已经拥有的一些JavaScript代码:

var diffIndexes = [];
var newTags = ['a','b','c'];
var oldTags = ['c'];
var diffValues = arrayDiff(newTags, oldTags);
console.log(diffIndexes); // [0, 1]
console.log(diffValues); // ['a', 'b'] "

您可以执行以下操作:

def arrayDiff[T](newTags: List[T], oldTags: List[T]) = {
  oldTags.foldLeft(newTags.zipWithIndex.toMap) {
    case (seed, char) => {
      seed.get(char) match {
        case Some(_) => seed - char
        case _ => seed
      }
    }
  }
}


val newTags = List('a', 'b', 'c')
val oldTags = List('c')
val (diffIndexes, diffValues) = arrayDiff(newTags, oldTags).unzip
println(diffIndexes) // List(a, b)
println(diffValues) // List(0, 1)

我不确定这是否是你的意思,因为当
oldTags
有一些值
newTags
不存在时,你想做什么?在我的情况下,its将忽略oldTag,因为它不在newTags

中。你可以很容易地使用它,并且


代码运行在

你的问题中JS代码段的要点是什么?发布的代码毫无意义。
diffIndexes
如何填充?如果
newTags=['a','b']
oldTags=['c','d']
,预期的结果是什么?
val (diffValues, diffIndexes) = newTags.zipWithIndex.filter(c => !oldTags.contains(c._1)).unzip