在js中查找数组中重复项的索引

5 javascript arrays

我有两个数组

arr1=[ 0, 1, 2, 0, 2 ];

arr2=[ 0, 0, 1, 2, 2 ];

我必须从arr1中找到arr2的元素索引,并且输出数组需要像[0,3,1,2,4];

我编写了一个代码,但它可以在没有重复的数组上工作

var index = [];
for (i = 0; i <= arr2.length - 1; i++) {
  index.push(arr1.indexOf(arr2[i]));
}
Run Code Online (Sandbox Code Playgroud)

小智 0

var arr1 = [ 0, 1, 2, 0, 2 ];
var arr2 = [ 0, 0, 1, 2, 2 ]
var index = [];
var hash = {};
for (i = 0; i < arr2.length; i++) {
  var ind_temp;
  if(arr2[i] in hash){
    //console.log("here");
    ind_temp = arr1.indexOf(arr2[i],hash[arr2[i]] + 1);
    index.push(ind_temp);
    hash[arr2[i]] = ind_temp;
  }
  else{
    ind_temp = arr1.indexOf(arr2[i]);
    index.push(ind_temp);
    hash[arr2[i]] = ind_temp;
  }
}

console.log(index);
Run Code Online (Sandbox Code Playgroud)