Heim >Web-Frontend >js-Tutorial >Wie finde ich Übereinstimmungen in Arrays über mehrere Arrays hinweg in Javascript?

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

Barbara Streisand
Barbara StreisandOriginal
2024-10-31 01:58:29772Durchsuche

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'];

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']

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;
    });
});

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;
});

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;
}, []);

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!

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