Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

จุดตัดเฉพาะของอาร์เรย์ใน JavaScript


เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่ใช้ตัวเลขสองอาร์เรย์ สมมติว่า arr1 และ arr2 ฟังก์ชันควรหาจุดตัดระหว่างองค์ประกอบของอาร์เรย์ นั่นคือองค์ประกอบที่ปรากฏในอาร์เรย์ทั้งสอง

เงื่อนไขเดียวคือถ้าเราพบองค์ประกอบหนึ่งก่อนหน้านี้ว่าตัดกัน เราไม่ควรพิจารณาองค์ประกอบนั้นอีกแม้ว่าจะปรากฏขึ้นอีกครั้งในอาร์เรย์ทั้งสอง

ตัวอย่างเช่น −

หากอาร์เรย์อินพุตเป็น −

const arr1 = [1, 5, 7, 3, 1];
const arr2 = [1, 7, 3, 1, 6];

จากนั้นอาร์เรย์เอาต์พุตควรเป็น −

const output = [1, 3, 7];

อย่างไรก็ตาม ลำดับนั้นไม่สำคัญ สิ่งที่สำคัญกว่านั้นคือไม่ต้องพิจารณาถึงทางแยกที่ซ้ำซากจำเจ

ตัวอย่าง

ต่อไปนี้เป็นรหัส -

const arr1 = [1, 5, 7, 3, 1];
const arr2 = [1, 7, 3, 1, 6];
const uniqueIntersection = (arr1, arr2) => {
   const map = new Set();
   const res = [];
   arr1.forEach(el => map.add(el));
   arr2.forEach(el => {
      if (map.has(el)) {
         res.push(el);
         map.delete(el);
      };
   });
   return res;
};
console.log(uniqueIntersection(arr1, arr2));

ผลลัพธ์

ต่อไปนี้เป็นผลลัพธ์บนคอนโซล -

[1, 7, 3]