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

时间:2016-12-01 22:47:44

标签: javascript arrays underscore.js lodash

我有两个数组,一个oldArray和一个newArray。它们都是扁平的,长度相同。我想要一个检查newArray是否有重复的函数,我想要包含与oldArray中的副本相比的位置。

示例:

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

dd是副本,与旧数组相比,它发生在第3位。有没有聪明的方法来做到这一点?好的,在回答中使用下划线/ lodash。

2 个答案:

答案 0 :(得分:0)

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)

答案 1 :(得分:0)

使用newArr迭代Array#reduce,并存储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);