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>
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:
Durch die iterative Anwendung dieser Logik auf jedes Array können wir effektiv die Elemente finden, die in allen den bereitgestellten Arrays identisch vorkommen.
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 && 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!