我有两个数组,一个oldArray
和一个newArray
。它们都是扁平的,长度相同。我想要一个检查newArray
是否有重复的函数,我想要包含与oldArray
中的副本相比的位置。
示例:
var oldArr = ['abc', null, 'dd', null, 'cc]
var newArr = ['abc', null, 'dd', 'dd', 'cc]
dd
是副本,与旧数组相比,它发生在第3位。有没有聪明的方法来做到这一点?好的,在回答中使用下划线/ lodash。
答案 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);