Scala 如何比较两个数组并找到元素不同的索引?
Scala中是否有内置函数(比较后无法获取索引) 以下是我已经拥有的一些JavaScript代码: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'] "
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