Ü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:
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!