寻找 JavaScript 中两个文本数组之间的缺失数字


问题

我们需要编写一个 JavaScript 函数,它需要两个数组 arr1 和 arr2。

arr2 是 arr1 的一个打乱后的重复副本,仅缺少一个元素。

我们的函数应找到并返回该元素。

示例

以下为代码 −

 实时演示

const arr1 = [6, 1, 3, 6, 8, 2];
const arr2 = [3, 6, 6, 1, 2];
const findMissing = (arr1 = [], arr2 = []) => {
   const obj = {};
   for (let i = 0; i < arr1.length; i++) {
      if (obj[arr1[i]] === undefined) {
         obj[arr1[i]] = 1;
      } else {
         obj[arr1[i]]++;
      };
   }
   for (let i = 0; i < arr2.length; i++) {
      if (obj[arr2[i]] === undefined || obj[arr2[i]]-- === 0) {
         return arr2[i];
      }
   }
   for (key in obj) {
      if (obj[key] > 0) {
         return Number(key);
      }
   }
   return -1;
};
console.log(findMissing(arr1, arr2));

输出

控制台输出如下 −

8

更新于: 2021-04-17

533 浏览量

开启你的 职业

完成课程即可获得认证

开始
广告