İki Dizi Arasında Kesişim Gerçekleştiren JavaScript Programı

Bu örnekte, iki dizi arasında bir kesişim gerçekleştirecek bir JavaScript programı yazmayı öğreneceksiniz.

Bu örneği anlamak için, aşağıdaki JavaScript programlama konuları hakkında bilgi sahibi olmalısınız:

  • Javascript Dizi filtresi ()
  • JavaScript Dizisi itme ()
  • JavaScript Kümesi ve Zayıf Kümesi

Örnek 1: Set Kullanarak Kesişme Gerçekleştirin

 // 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);

Çıktı

 (1, 3, 5)

Yukarıdaki programda, array1ve arasında bir kesişme gerçekleştirilir array2.

  • Dizi öğeleri Set, new Set()yapıcı kullanılarak öğelere dönüştürülür .
  • for… ofDöngü ikinci yineleme için kullanılan Setöğeleri.
  • has()Yöntem eleman ilk olup olmadığını kontrol etmek için kullanılır Set.
  • Öğe ilkinde mevcutsa Set, bu öğe push()yöntem kullanılarak intersectionResult dizisine eklenir .

Örnek 2: filter () Yöntemini Kullanarak Kesişim Gerçekleştirme

 // 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);

Çıktı

 (1, 3, 5)

Yukarıdaki programda, filter()yöntem kullanılarak iki dizi arasında bir kesişim gerçekleştirilir . Filtre yöntemi bir dizi üzerinde yinelenir ve verilen koşulu geçen dizi öğelerini döndürür.

  • İlk dizinin her bir öğesi, indexOf()yöntem kullanılarak ikinci dizi ile karşılaştırılır .
  • arr2.indexOf(x)Yöntem arar ve döner arr1 ilk geçtiği konumu ARR2. Değer bulunamazsa -1 döndürür .
  • Her iki dizide bulunan tüm elemanlar filter()yöntem tarafından döndürülür .

Not:includes() Yöntemi, dizi öğelerinin her iki dizide de olup olmadığını kontrol etmek için de kullanabilirsiniz .

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

Ilginç makaleler...