Heim >Web-Frontend >js-Tutorial >Wie kann ich doppelte Werte in einem JavaScript-Array effizient finden?

Wie kann ich doppelte Werte in einem JavaScript-Array effizient finden?

Susan Sarandon
Susan SarandonOriginal
2024-12-15 15:20:23366Durchsuche

How Can I Efficiently Find Duplicate Values in a JavaScript Array?

Nicht eindeutige Werte in einem Array finden

Das Identifizieren doppelter Werte in einem JavaScript-Array ist eine häufige Aufgabe. Während das Durchlaufen des Arrays und der Vergleich jedes Elements mit den anderen wie ein unkomplizierter Ansatz erscheinen mag, kann es insbesondere bei großen Arrays ineffizient sein.

Eine optimierte Lösung besteht darin, das Array zuerst zu sortieren. Dieser Schritt reduziert die Komplexität von O(n^2) auf weniger als O(n^2), indem ähnliche Elemente gruppiert werden.

Sobald das Array sortiert ist, können Sie es durchlaufen und prüfen, ob das aktuelle Element vorhanden ist entspricht dem nächsten oder vorherigen Element. Wenn sie gleich sind, wird der Wert als Duplikat betrachtet und kann einer Ergebnisliste hinzugefügt werden.

const findDuplicates = (arr) => {
  let sorted_arr = arr.slice().sort();
  let results = [];
  for (let i = 0; i < sorted_arr.length - 1; i++) {
    if (sorted_arr[i + 1] == sorted_arr[i]) {
      results.push(sorted_arr[i]);
    }
  }
  return results;
};

Zum Beispiel ein Array wie [9, 9, 111, 2, 3, 4, 4, 5, 7] würde dieser Ansatz die doppelten Werte effizient identifizieren und zurückgeben: [9, 4].

Durch die Nutzung der Sortierung und des Vergleichs benachbarter Elemente bietet diese Lösung eine zeiteffiziente Methode zum Finden nicht eindeutiger Werte in einem Array.

Das obige ist der detaillierte Inhalt vonWie kann ich doppelte Werte in einem JavaScript-Array 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