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, array1
ve 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… of
Döngü ikinci yineleme için kullanılanSet
öğeleri.has()
Yöntem eleman ilk olup olmadığını kontrol etmek için kullanılırSet
.- Öğe ilkinde mevcutsa
Set
, bu öğepush()
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))