在JavaScript中将字谜彼此映射

字谜数组:

如果我们可以随机化该数组的元素以实现另一个数组,则一个数组就是另一个数组的类似物。

例如-

[1, 2, 3] and [2, 1, 3] are anagrams of each other.

假设我们有两个数组,arr1和arr2彼此是字谜。

我们需要编写一个JavaScript函数,该函数接受这两个数组并返回一个新的映射数组,该数组的长度与arr1和arr2相同。映射数组应包含arr2数组中存在的arr1数组元素的索引。

例如-

如果两个输入数组是-

const arr1 = [23, 39, 57, 43, 61];
const arr2 = [61, 23, 43, 57, 39];

那么输出应该是-

const output = [1, 4, 3, 2, 0];

因为在arr1中索引0处的项目在arr2中索引1处

arr1中索引1处的项在arr2中索引4处,依此类推

示例

为此的代码将是-

const arr1 = [23, 39, 57, 43, 61];
const arr2 = [61, 23, 43, 57, 39];
const anagramMappings = (arr1 = [], arr2 = []) => {
   const res = [];
   for(let i = 0; i < arr1.length; i++) {
      for(let j = 0; j < arr2.length; j++) {
         if(arr1[i] == arr2[j]){
            res.push(j);
         };
      };
   };
   return res;
};
console.log(anagramMappings(arr1, arr2));
输出结果

控制台中的输出将是-

[ 1, 4, 3, 2, 0 ]