Heim >Web-Frontend >js-Tutorial >Wie kann ich den Schnittpunkt zweier Arrays in JavaScript effizient finden?
Mühelose Array-Schnittmenge in JavaScript
Array-Schnittmenge ist eine grundlegende Operation in der Programmierung. Bei zwei Arrays gibt die Schnittmenge ein neues Array zurück, das nur die Elemente enthält, die beiden gemeinsam sind. In JavaScript ist die bibliotheksfreie Implementierung dieser Operation überraschend einfach.
Lösung
Der einfachste und prägnanteste Weg, eine Array-Schnittmenge in JavaScript zu erreichen, ist die Nutzung der Leistungsfähigkeit von Array.prototype.filter und Array.prototype.includes. Dieser Ansatz vermeidet die Notwendigkeit komplexer Schleifen oder externer Abhängigkeiten.
const intersection = (array1, array2) => { return array1.filter((value) => array2.includes(value)); };
Alternativ können Sie für ältere Browser, die möglicherweise keine Pfeilfunktionen unterstützen, den folgenden Code verwenden:
const intersection = (array1, array2) => { return array1.filter(function(n) { return array2.indexOf(n) !== -1; }); };
Beispiel
Bedenken Sie Folgendes, um die Wirksamkeit dieser Lösung zu veranschaulichen Beispiel:
console.log(intersection([1, 2, 3], [2, 3, 4, 5])); // [2, 3]
Die Schnittfunktion gibt wie erwartet korrekt ein Array zurück, das die gemeinsamen Elemente [2, 3] enthält.
Hinweis
Es ist wichtig zu beachten, dass sowohl Array.prototype.includes als auch Array.prototype.indexOf vergleicht Elemente im Array mit strikter Gleichheit (===), was bedeutet, dass, wenn die Arrays komplexe Objekte enthalten, der Vergleich nur Objektverweise und nicht deren Inhalt abgleicht. Um diesen Anwendungsfall zu bewältigen, sollten Sie Array.prototype.some verwenden, um eine benutzerdefinierte Vergleichslogik anzugeben.
Das obige ist der detaillierte Inhalt vonWie kann ich den Schnittpunkt zweier Arrays in JavaScript effizient finden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!