我有两个数组
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)