In dit voorbeeld leert u een JavaScript-programma te schrijven dat een kruising tussen twee arrays uitvoert.
Om dit voorbeeld te begrijpen, moet u kennis hebben van de volgende JavaScript-programmeeronderwerpen:
- Javascript-matrixfilter ()
- JavaScript-matrix push ()
- JavaScript Set en WeakSet
Voorbeeld 1: kruispunt uitvoeren met set
// 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);
Uitvoer
(1, 3, 5)
In het bovenstaande programma wordt een kruising uitgevoerd tussen array1
en array2
.
- De array-elementen worden
Set
met denew Set()
constructor omgezet in elementen . - De
for… of
lus wordt gebruikt om de tweedeSet
elementen te herhalen . - De
has()
methode wordt gebruikt om te controleren of het element zich in het eerste bevindtSet
. - Als het element aanwezig is in het eerste
Set
, wordt dat element met depush()
methode toegevoegd aan de intersectionResult-array .
Voorbeeld 2: kruispunt uitvoeren met de methode 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);
Uitvoer
(1, 3, 5)
In het bovenstaande programma wordt een kruising uitgevoerd tussen twee arrays met behulp van de filter()
methode. De filtermethode itereert over een array en retourneert de array-elementen die aan de gegeven voorwaarde voldoen.
- Elk element van de eerste array wordt met behulp van de
indexOf()
methode vergeleken met de tweede array . - De
arr2.indexOf(x)
methode zoekt arr2 en retourneert de positie van de eerste keer dat arr1 voorkomt. Als de waarde niet kan worden gevonden, wordt -1 geretourneerd . - Alle elementen in beide arrays worden geretourneerd door de
filter()
methode.
Opmerking: u kunt de includes()
methode ook gebruiken om te controleren of de array-elementen in beide arrays staan.
const intersectionResult = arr1.filter(x => arr2.includes(x))