Chương trình JavaScript để thực hiện giao cắt giữa hai mảng

Trong ví dụ này, bạn sẽ học cách viết một chương trình JavaScript sẽ thực hiện giao nhau giữa hai mảng.

Để hiểu ví dụ này, bạn nên có kiến ​​thức về các chủ đề lập trình JavaScript sau:

  • Bộ lọc mảng Javascript ()
  • JavaScript Array push ()
  • JavaScript Set và WeakSet

Ví dụ 1: Thực hiện Giao điểm bằng Tập hợp

 // program to perform intersection between two arrays using Set // intersection contains the elements of array1 that are also in array2 function performIntersection(arr1, arr2) ( // converting into Set const setA = new Set(arr1); const setB = new Set(arr2); let intersectionResult = (); for (let i of setB) ( if (setA.has(i)) ( intersectionResult.push(i); ) ) return intersectionResult; ) const array1 = (1, 2, 3, 5, 9); const array2 = (1, 3, 5, 8); const result = performIntersection(array1, array2); console.log(result);

Đầu ra

 (1, 3, 5)

Trong chương trình trên, một giao điểm được thực hiện giữa array1array2.

  • Các phần tử của mảng được chuyển đổi thành Setcác phần tử bằng cách sử dụng hàm new Set()tạo.
  • Các for… ofvòng lặp được sử dụng để lặp qua thứ hai Setyếu tố này.
  • Các has()phương pháp được sử dụng để kiểm tra xem phần tử là trong lần đầu tiên Set.
  • Nếu phần tử có trong phần tử đầu tiên Set, phần tử đó sẽ được thêm vào mảng giao diện tử bằng push()phương thức này.

Ví dụ 2: Thực hiện Giao điểm bằng phương thức filter ()

 // program to perform intersection between two arrays function performIntersection(arr1, arr2) ( const intersectionResult = arr1.filter(x => arr2.indexOf(x) !== -1); return intersectionResult; ) const array1 = (1, 2, 3, 5, 9); const array2 = (1, 3, 5, 8); const result = performIntersection(array1, array2); console.log(result);

Đầu ra

 (1, 3, 5)

Trong chương trình trên, một giao điểm được thực hiện giữa hai mảng bằng filter()phương thức này. Phương thức bộ lọc lặp qua một mảng và trả về các phần tử của mảng vượt qua điều kiện đã cho.

  • Mỗi phần tử của mảng đầu tiên được so sánh với mảng thứ hai bằng indexOf()phương thức này.
  • Các arr2.indexOf(x)tìm kiếm phương pháp arr2 và trả về vị trí của sự xuất hiện đầu tiên của arr1. Nếu không tìm thấy giá trị, nó sẽ trả về -1 .
  • Tất cả các phần tử nằm trong cả hai mảng đều được filter()phương thức trả về .

Lưu ý: Bạn cũng có thể sử dụng includes()phương pháp này để kiểm tra xem các phần tử của mảng có nằm trong cả hai mảng hay không.

 const intersectionResult = arr1.filter(x => arr2.includes(x))

thú vị bài viết...