Heim > Web-Frontend > js-Tutorial > Wie kann ich doppelte Werte aus einem JavaScript-Array entfernen?

Wie kann ich doppelte Werte aus einem JavaScript-Array entfernen?

Linda Hamilton
Freigeben: 2024-12-22 12:22:11
Original
942 Leute haben es durchsucht

How Can I Remove Duplicate Values from a JavaScript Array?

Doppelte Werte aus JS-Array entfernen

Das Duplizieren von Elementen in JavaScript-Arrays ist ein häufiges Problem. Um dieses Problem anzugehen, können verschiedene Methoden eingesetzt werden.

Set- und Spread-Syntax:

Die prägnanteste Lösung nutzt den Set-Konstruktor und die Spread-Syntax:

uniq = [...new Set(array)];
Nach dem Login kopieren

Naiver Ansatz:

Der Einfachheit halber beinhaltet ein unkomplizierter Ansatz das Filtern Elemente basierend auf ihrem Index:

uniqueArray = a.filter(function(item, pos) {
    return a.indexOf(item) == pos;
});
Nach dem Login kopieren

Verwendung von Hashtabellen:

Eine effizientere Methode nutzt Hashtabellen und verwendet Objekteigenschaften als Schlüssel:

function uniq(a) {
    var seen = {};
    return a.filter(function(item) {
        return seen.hasOwnProperty(item) ? false : (seen[item] = true);
    });
}
Nach dem Login kopieren

Kombinierende Ansätze:

Um verschiedene Arrays zu handhaben, a Hybridlösung kombiniert Hashtabellen für Grundelemente und lineare Suche nach Objekten:

function uniq(a) {
    var prims = {"boolean":{}, "number":{}, "string":{}}, objs = [];

    return a.filter(function(item) {
        var type = typeof item;
        if(type in prims)
            return prims[type].hasOwnProperty(item) ? false : (prims[type][item] = true);
        else
            return objs.indexOf(item) >= 0 ? false : objs.push(item);
    });
}
Nach dem Login kopieren

Sortieren und Filtern:

Sortieren vor dem Filtern bietet eine weitere Option, nämlich das Entfernen von Duplikaten basierend auf benachbarten Elementen :

function uniq(a) {
    return a.sort().filter(function(item, pos, ary) {
        return !pos || item != ary[pos - 1];
    });
}
Nach dem Login kopieren

Benutzerdefiniert Vergleich:

Für eindeutige Vergleiche kann ein Rückruf übergeben werden, wobei gleiche „Schlüssel“ gefiltert werden:

function uniqBy(a, key) {
    var seen = {};
    return a.filter(function(item) {
        var k = key(item);
        return seen.hasOwnProperty(k) ? false : (seen[k] = true);
    })
}
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie kann ich doppelte Werte aus einem JavaScript-Array entfernen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage