JavaScript-program för att utföra korsningen mellan två arrayer

I det här exemplet lär du dig att skriva ett JavaScript-program som utför en korsning mellan två matriser.

För att förstå detta exempel bör du ha kunskap om följande JavaScript-programmeringsämnen:

  • Javascript Array filter ()
  • JavaScript Array push ()
  • JavaScript Set och WeakSet

Exempel 1: Utför korsningen med 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);

Produktion

 (1, 3, 5)

I ovanstående program utförs en korsning mellan array1och array2.

  • Arrayelementen omvandlas till Setelement med hjälp av new Set()konstruktorn.
  • Den for… ofloop används för att iterera över de andra Setelementen.
  • Den has()metod som används för att kontrollera om elementet är i det första Set.
  • Om elementet är närvarande i det första Setläggs det till i arrayen intersectionResult med push()metoden.

Exempel 2: Utför korsning med filter () -metoden

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

Produktion

 (1, 3, 5)

I ovanstående program utförs en korsning mellan två matriser med filter()metoden. Filtermetoden itererar över en matris och returnerar matriselementen som passerar det angivna villkoret.

  • Varje element i den första matrisen jämförs med den andra matrisen med indexOf()metoden.
  • De arr2.indexOf(x)metod sökningar arr2 och returnerar positionen för den första förekomsten av arr1. Om värdet inte kan hittas returnerar det -1 .
  • Alla element som finns i båda matriserna returneras med filter()metoden.

Obs! Du kan också använda includes()metoden för att kontrollera om arrayelementen finns i båda matriserna.

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

Intressanta artiklar...