Heim >Web-Frontend >js-Tutorial >Wie kann man eindeutige Werte in einem JavaScript-Array effizient finden und zurückgeben?
Eindeutige Werte in JavaScript-Arrays finden
Beim Umgang mit Arrays in JavaScript ist es oft wünschenswert, doppelte Werte zu entfernen, um die Eindeutigkeit sicherzustellen. Hier ist ein häufiges Problem, das bei JavaScript-Arrays auftritt:
var numbers = [1, 2, 3, 4, 5, 1, 2]; numbers.getUnique(); // [1, 2, 3, 4, 5] (incorrectly includes 1 and 2)
Die bereitgestellte Prototypmethode Array.prototype.getUnique versucht, Duplikate herauszufiltern, schlägt jedoch fehl, wenn sie auf einen Nullwert trifft.
Zu Um das Problem zu verstehen, schauen wir uns den Code an:
Array.prototype.getUnique = function() { var o = {}, a = [], i, e; for (i = 0; e = this[i]; i++) {o[e] = 1}; for (e in o) {a.push (e)}; return a; };
Das Problem liegt im Objekt o, das zum Verfolgen eindeutiger Werte verwendet wird. Wenn eine Zahl in o eingefügt wird, wird sie in eine Zeichenfolge umgewandelt. Für Null führt diese Konvertierung jedoch zu der leeren Zeichenfolge ''.
Wenn die zweite Schleife also über o iteriert, findet sie die leere Zeichenfolge als Schlüssel und fügt sie dem a-Array hinzu. Dies führt zur falschen Einbeziehung doppelter Werte.
Eine korrekte Lösung für eindeutige Werte
Um eindeutige Werte aus einem Array genau zu erhalten, ziehen Sie die folgende ES6-Lösung unter Verwendung von in Betracht Filtermethode:
function onlyUnique(value, index, array) { return array.indexOf(value) === index; } // usage example: var numbers = [1, 2, 3, 4, 5, 1, 2]; var unique = numbers.filter(onlyUnique); console.log(unique); // [1, 2, 3, 4, 5]
Diese Funktion vergleicht den Index jedes Werts im Array mit dem aktuellen Index. Wenn der Index übereinstimmt, bedeutet dies, dass der Wert eindeutig ist und im gefilterten Array enthalten ist. Mit diesem Ansatz werden alle doppelten Werte effektiv entfernt.
Das obige ist der detaillierte Inhalt vonWie kann man eindeutige Werte in einem JavaScript-Array effizient finden und zurückgeben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!