Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

การหาตัวเลขที่หายไประหว่างสองอาร์เรย์ใน 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