查找两个数组的重复位置,javascript

Find duplicate position of two arrays, javascript

我有两个数组,一个 oldArray 和一个 newArray。它们都是扁平的并且长度相同。我想要一个检查 newArray 是否有重复项的函数,并且我想要与 oldArray.

中相比包含重复项的位置

示例:

var oldArr = ['abc', null, 'dd', null, 'cc]
var newArr = ['abc', null, 'dd', 'dd', 'cc]

dd 是重复的,它发生在与旧数组相比的第 3 位。有什么聪明的方法可以做到这一点吗?可以在回答中使用 underscore/lodash。

function find(oldA, newA){
   var ret = {};
   for(var i = 0; i < newA.length; i++){
      if(newA.match(newA[i]).lenth > 1){
        ret.value = newA[i]; res.pos = newA[i] === old[i]?newA.lastIndexOf(ret.value)?i;}
 return ret;
 }

   var res = find(oldArray, newArray)

使用 Array#reduce 迭代 newArr,并存储在 oldArr 中的另一个索引上找到的每个元素的位置:

var oldArr = ['abc', null, 'dd', null, 'cc'];
var newArr = ['abc', null, 'dd', 'dd', 'cc'];

var duplicates = newArr.reduce(function(d, e, i) {
  var oldIndex = oldArr.indexOf(e);
  oldIndex !== -1 && oldIndex !== i && d.push(i);
  
  return d;
}, []);
              
console.log(duplicates);