Heim >Web-Frontend >js-Tutorial >Warum schlägt das Entfernen von Duplikaten aus einem JavaScript-Array mit Null fehl?

Warum schlägt das Entfernen von Duplikaten aus einem JavaScript-Array mit Null fehl?

Susan Sarandon
Susan SarandonOriginal
2024-12-22 13:45:33230Durchsuche

Why Does Removing Duplicates from a JavaScript Array Fail with Zero?

Duplikate aus einem JavaScript-Array entfernen: Der mysteriöse Nullfehler

Bei der Arbeit mit Arrays in JavaScript ist es oft wichtig, sicherzustellen, dass die Werte eindeutig sind. Allerdings kann es verwirrend sein, beim Umgang mit Nullwerten auf einen Fehler zu stoßen. Lassen Sie uns das Problem und seine Lösung untersuchen.

Das bereitgestellte Code-Snippet verwendet die Funktion Array.prototype.getUnique, um Duplikate zu entfernen:

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

Obwohl diese Funktion in den meisten Fällen einwandfrei funktioniert, gerät sie ins Stocken wenn das Array eine Null enthält. Um dieses Problem zu lösen, können wir die native Filtermethode eines Arrays nutzen, die in JavaScript 1.6/ECMAScript 5 eingeführt wurde:

function onlyUnique(value, index, array) {
  return array.indexOf(value) === index;
}

// usage example:
var a = ['a', 1, 'a', 2, '1'];
var unique = a.filter(onlyUnique);

console.log(unique); // ['a', 1, 2, '1']

In dieser Lösung stellt die Funktion onlyUnique sicher, dass jeder Wert nur einmal im resultierenden Array erscheint . Bei Verwendung mit der Filtermethode werden Duplikate, einschließlich Null, effektiv entfernt.

Das obige ist der detaillierte Inhalt vonWarum schlägt das Entfernen von Duplikaten aus einem JavaScript-Array mit Null fehl?. 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