Array-Unterschiede in JavaScript finden: Schnittmenge, Differenz und symmetrische Differenz
In JavaScript kann der Element-für-Element-Vergleich von Arrays mühsam sein . Um diesen Prozess zu vereinfachen, erkunden wir ein leistungsstarkes Tool: Array.prototype.includes().
Intersection
Um die Werte zu erhalten, die beiden Arrays gemeinsam sind, haben wir kann filter() verwenden. Zum Beispiel:
let intersection = arr1.filter(x => arr2.includes(x));
Dies ergibt den Schnittpunkt: [2, 3].
Differenz
Um Werte zu identifizieren, die nur in arr1 vorhanden sind, wir können die Elemente herausfiltern, die in arr2 vorhanden sind.
let difference = arr1.filter(x => !arr2.includes(x));
Dadurch ergibt sich der Unterschied: [1].
Symmetrische Differenz
Um die Elemente zu erhalten, die ausschließlich in arr1 oder arr2 enthalten sind, kombinieren wir die beiden Unterschiede:
let symDifference = arr1.filter(x => !arr2.includes(x)) .concat(arr2.filter(x => !arr1.includes(x)));
Dies erzeugt den symmetrischen Unterschied: [1].
Wie von @Joshaven Potter hervorgehoben, können diese Methoden direkt zum hinzugefügt werden Array.prototype für mehr Flexibilität:
Array.prototype.diff = function(arr2) { return this.filter(x => !arr2.includes(x)); }
Dann können Sie es direkt auf Arrays verwenden:
[1, 2, 3].diff([2, 3]) // [1]
Das obige ist der detaillierte Inhalt vonWie kann ich den Schnittpunkt, die Differenz und die symmetrische Differenz zweier JavaScript-Arrays effizient finden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!