Der Schnittpunkt zweier Arrays in JavaScript kann auf unterschiedliche Weise erfolgen, z. B. mithilfe von Set, Spread-Operator, filter()-Methode oder include()-Methode. Jede Methode hat ihre eigenen Vor- und Nachteile und es ist wichtig zu überlegen, welche Methode für eine bestimmte Aufgabe am besten geeignet ist. Die Schnittmenge zweier Arrays kann hilfreich sein, wenn Sie ein neues Array erstellen möchten, das nur die in beiden Arrays gefundenen Elemente enthält.
Nehmen wir ein Beispiel -
arr1 = [ 2, 5, 7, 9, 11, 13, 15, 17 ] arr2 = [ 1, 3, 5, 7, 11, 13, 16, 17 ] intersecArr = [ 5, 6, 11, 13, 17 ]
Oben haben wir zwei Arrays arr1 und arr2 definiert, einschließlich einiger der gleichen Werte, die in den beiden Arrays vorhanden sind. Der Schnittpunkt der beiden Arrays ist antersecArr.
Lassen Sie uns besprechen, wie Sie in JavaScript ein Array aus der Schnittmenge zweier Arrays erstellen.
Mit den Methoden filter() und include() können wir eine Schnittmenge für zwei Arrays durchführen. Die Methode filter() akzeptiert eine Funktion als Argument und wendet sie auf jedes Element im Array an. Die Funktion sollte einen booleschen Wert von „true“ oder „false“ zurückgeben, der angibt, ob das Element in das neue Array aufgenommen werden soll. In unserem Fall möchten wir, dass das Element in beiden Eingabearrays vorhanden ist. Daher verwenden wir die Methode Includes(), um zu prüfen, ob das Element im anderen Array vorhanden ist.
Hier ist die Syntax zum Erstellen eines neuen Arrays aus der Schnittmenge zweier Arrays mithilfe der Methoden filter() und include() -
let intersection = arr1.filter(x => arr2.includes(x));
filter() akzeptiert eine Callback-Funktion als Parameter. Diese Rückruffunktion wird auf jedes Element des ersten Arrays (arr1) angewendet und verwendet die Methode Includes(), um zu prüfen, ob das aktuelle Element (x) im zweiten Array (arr2) vorhanden ist. Wenn das aktuelle Element (x) im zweiten Array (arr2) vorhanden ist, wird es in das neue Array (Schnittpunkt) aufgenommen.
Wenn das aktuelle Element (x) im zweiten Array (arr2) nicht vorhanden ist, schließen Sie es aus dem neuen Array (Schnittpunkt) aus. Das Endergebnis ist ein neues Array (die Schnittmenge), das nur die in arr1 und arr2 vorhandenen Elemente enthält.
Im folgenden Beispiel erstellen wir zwei Arrays arr1 und arr2 mit jeweils fünf Elementen, von denen drei gleich sind. Verwenden Sie dann die Filter- und Contain-Methoden, um aus beiden Arrays ein neues Array gemeinsamer Elemente zu erstellen.
<html> <head> <title>Creating an Array using Intersection of two Arrays using Filter() and Includes() methods</title> </head> <body> <p id="arr1"></p> <p id="arr2"></p> <p id="result"></p> <script> let arr1 = [5, 6, 8, 11, 15]; let arr2 = [3, 5, 8, 11, 17]; document.getElementById("arr1").innerHTML = "Array 1: " + JSON.stringify(arr1); document.getElementById("arr2").innerHTML = "Array 1: " + JSON.stringify(arr2); const intersection = arr1.filter(x => arr2.includes(x)); document.getElementById("result").innerHTML = "Intersection of Array1 & Array 2: " + JSON.stringify(intersection); </script> </body> </html>
Der obige Code erstellt ein neues Array namens „intersectionArray“, das nur Elemente enthält, die in beiden Eingabearrays vorhanden sind.
Bei dieser Methode erstellen wir zunächst ein neues Sammlungsobjekt aus den Elementen von arr1. Es entfernt alle doppelten Elemente. Verwenden Sie dann den Spread-Operator, um das Sammlungsobjekt in ein Array umzuwandeln. Das Array enthält keine doppelten Elemente. Jetzt verwenden wir die Methoden filter() und include(), um eine Schnittmenge durchzuführen. Der weitere Ablauf ist derselbe wie bei der ersten Methode.
let intersection = [...new Set(arr1)].filter(x => arr2.includes(x));
Die obige Syntax erstellt ein neues Array „Schnittpunkt“. Nachdem alle Duplikate aus arr1 entfernt wurden, enthält es Elemente, die in arr1 und arr2 vorhanden sind.
Creating an Array using Intersection of two Arrays using Spread Operator and Filter() method <script> let arr1 = [4, 8, 12, 16, 20, 28]; let arr2 = [8, 16, 20, 24, 28, 30]; document.getElementById("arr1").innerHTML = "Array 1: " + JSON.stringify(arr1); document.getElementById("arr2").innerHTML = "Array 1: " + JSON.stringify(arr2); let intersection = [...new Set(arr1)].filter(x => arr2.includes(x)); document.getElementById("result").innerHTML = "Intersection of Array1 & Array 2: " + JSON.stringify(intersection); </script>
Bei dieser Methode konvertieren wir zunächst das Array mit dem neuen Set()-Konstruktor in eine Menge. Verwenden Sie dann eine for...of-Schleife, um die Elemente des zweiten Satzes zu durchlaufen. Verwenden Sie dann die Methode has(), um zu überprüfen, ob sich das Element im ersten Set befindet. Wenn das Element im ersten Set vorhanden ist, verwenden Sie die Methode push(), um das Element zum Schnittpunktarray hinzuzufügen.
<html> <head> <title>Creating an Array using Intersection of two Arrays using Set</title> </head> <body> <p id="arr1"></p> <p id="arr2"></p> <p id="result"></p> <script> function doIntersection(arr1, arr2) { const setFirst = new Set(arr1); const setSecond = new Set(arr2); let intersection = []; for (let i of setSecond) { if (setFirst.has(i)) { intersection.push(i); } } return intersection; } const arrFirst = [4, 6, 8, 10, 12]; const arrSecond = [4, 5, 8, 12, 15]; document.getElementById("arr1").innerHTML = "Array 1: " + JSON.stringify(arrFirst); document.getElementById("arr2").innerHTML = "Array 1: " + JSON.stringify(arrSecond); const interResult = doIntersection(arrFirst, arrSecond); document.getElementById("result").innerHTML = "Intersection of Array1 & Array 2: " + JSON.stringify(interResult); </script> </body> </html>
In diesem Tutorial haben wir anhand von Beispielen drei Möglichkeiten zum Erstellen eines Arrays anhand der Schnittmenge zweier Arrays besprochen. In der ersten Methode verwenden wir die Methoden filter() und include(), während wir in der zweiten Methode zusätzlich zu filter und include auch den Spread-Operator und Set verwenden. Im dritten Ansatz erstellen wir eine benutzerdefinierte Funktion, um diese Aufgabe auszuführen.
Das obige ist der detaillierte Inhalt vonWie erstelle ich in JavaScript ein Array aus der Schnittmenge zweier Arrays?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!