Heim >Web-Frontend >js-Tutorial >Wie kann ich den Schnittpunkt zweier Arrays in JavaScript effizient finden?

Wie kann ich den Schnittpunkt zweier Arrays in JavaScript effizient finden?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-27 12:44:10160Durchsuche

How Can I Efficiently Find the Intersection of Two Arrays in JavaScript?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn