Heim > Web-Frontend > js-Tutorial > Hauptteil

Wie finde ich Übereinstimmungen in Arrays über mehrere Arrays hinweg in Javascript?

Barbara Streisand
Freigeben: 2024-10-31 01:58:29
Original
711 Leute haben es durchsucht

How to Find Matches in Arrays Across Multiple Arrays in Javascript?

Übereinstimmungen in Arrays über verschiedene Arrays hinweg finden

Stellen Sie sich ein Szenario vor, in dem Sie mehrere JavaScript-Arrays mit Zeichenfolgenwerten haben und Sie finden müssen und Extrahieren Sie nur die Übereinstimmungen, die in jedem einzelnen Array identisch sind.

Stellen Sie sich vor, Sie haben die folgenden Arrays:

var arr1 = ['apple', 'orange', 'banana', 'pear', 'fish', 'pancake', 'taco', 'pizza'];
var arr2 = ['taco', 'fish', 'apple', 'pizza'];
var arr3 = ['banana', 'pizza', 'fish', 'apple'];
Nach dem Login kopieren

Ihr Ziel ist es, ein Array zu erhalten, das nur die Übereinstimmungen enthält, die in allen drei vorkommen Arrays, die wie folgt wären:

['apple', 'fish', 'pizza']
Nach dem Login kopieren

Diese Aufgabe kann ohne die Verwendung externer Bibliotheken erledigt werden. Ein Ansatz beinhaltet die Verwendung der Methode filter() in Kombination mit every().

var result = arrays.shift().filter(function(v) {
    return arrays.every(function(a) {
        return a.indexOf(v) !== -1;
    });
});
Nach dem Login kopieren

In dieser Lösung:

  • shift() entfernt das erste Array aus der arrays-Sammlung.
  • filter() erstellt ein neues Array, das nur die Elemente enthält, die a übergeben angegebene Bedingung.
  • every() prüft, ob alle Elemente in der Arrays-Sammlung eine Bedingung erfüllen.

Sortieren des äußeren Arrays ( Arrays) basierend auf der Länge können die Leistung optimieren.

arrays.sort(function(a, b) {
    return a.length - b.length;
});
Nach dem Login kopieren

Wenn in den Arrays außerdem Duplikate vorhanden sind, können Sie stattdessen die Methode reduce() verwenden filter().

var result = arrays.shift().reduce(function(res, v) {
    if (res.indexOf(v) === -1 && arrays.every(function(a) {
        return a.indexOf(v) !== -1;
    })) res.push(v);
    return res;
}, []);
Nach dem Login kopieren

Mit diesen Methoden können Sie effektiv Übereinstimmungen in Arrays über mehrere Arrays hinweg finden, selbst wenn diese unbekannte Längen oder Duplikate enthalten.

Das obige ist der detaillierte Inhalt vonWie finde ich Übereinstimmungen in Arrays über mehrere Arrays hinweg in Javascript?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!