Heim  >  Artikel  >  Web-Frontend  >  Wie finde ich passende Elemente in mehreren JavaScript-Arrays?

Wie finde ich passende Elemente in mehreren JavaScript-Arrays?

Patricia Arquette
Patricia ArquetteOriginal
2024-10-24 18:45:09804Durchsuche

How to Find Matching Elements Across Multiple JavaScript Arrays?

Übereinstimmende Elemente über mehrere JavaScript-Arrays hinweg

Problem

Gegebene mehrere JavaScript-Arrays mit Zeichenfolgenwerten: Finden Sie die Elemente, die in allen identisch vorkommen die Arrays. Zum Beispiel:

<code class="javascript">var arr1 = ['apple', 'orange', 'banana', 'pear', 'fish', 'pancake', 'taco', 'pizza'];
var arr2 = ['taco', 'fish', 'apple', 'pizza'];
var arr3 = ['banana', 'pizza', 'fish', 'apple'];</code>

Erwartete Ausgabe:

<code class="javascript">['apple', 'fish', 'pizza']</code>

Lösung

Um die passenden Elemente zu finden, können wir eine Kombination von Array-Methoden verwenden:

<code class="javascript">const arrays = [arr1, arr2, arr3];
const result = arrays.shift().filter((v) => {
  return arrays.every((a) => {
    return a.indexOf(v) !== -1;
  });
});</code>

Schritte:

  1. Verwenden Sie arrays.shift(), um das erste Array aus der ursprünglichen Liste zu entfernen.
  2. Verwenden Sie .filter() das erste Array, das jedes Element v durchläuft.
  3. Verwenden Sie .every() für die restlichen Arrays, um zu überprüfen, ob jedes das aktuelle Element v enthält.
  4. Wenn das Element v vorhanden ist in jedem Array, fügen Sie es in das Ergebnisarray ein.

Durch die iterative Anwendung dieser Logik auf jedes Array können wir effektiv die Elemente finden, die in allen den bereitgestellten Arrays identisch vorkommen.

Zusätzliche Überlegungen

Behandlung doppelter Elemente:

Die bereitgestellte Lösung geht davon aus, dass die Arrays keine doppelten Elemente enthalten. Wenn dies der Fall ist, können Sie den Code wie folgt ändern:

<code class="javascript">const result = arrays.shift().reduce((res, v) => {
  if (res.indexOf(v) === -1 &amp;&amp; arrays.every((a) => {
    return a.indexOf(v) !== -1;
  })) res.push(v);
  return res;
}, []);</code>

Dieser Code verwendet .reduce() anstelle von .filter(). Es sucht nach Duplikaten innerhalb des Ergebnisarrays und fügt nur eindeutige Elemente hinzu, die in jedem Array vorhanden sind.

Beliebige Anzahl von Arrays:

Die Lösung ist für die Verwendung mit konzipiert eine unbekannte Anzahl von Arrays. Durch die Verwendung von arrays.shift() können wir das erste Array nacheinander mit den verbleibenden Arrays vergleichen, bis alle Arrays verarbeitet wurden.

Das obige ist der detaillierte Inhalt vonWie finde ich passende Elemente in mehreren JavaScript-Arrays?. 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