Wie jeder weiß, gibt es keine eingebaute Funktion, um die Duplikate aus einem Array in Javascript zu entfernen. Ich habe bemerkt, dass dies auch in jQuery fehlt (die nur eine eindeutige Funktion für DOM-Auswahlen hat), und das am häufigsten verwendete Snippet überprüft das gesamte Array und eine Teilmenge davon für jedes Element (nicht sehr effizient, denke ich) :unique() für Arrays in Javascript
for (var i = 0; i < arr.length; i++)
for (var j = i + 1; j < arr.length; j++)
if (arr[i] === arr[j])
//whatever
so machte ich meine eigene:
function unique (arr) {
var hash = {}, result = [];
for (var i = 0; i < arr.length; i++)
if (!(arr[i] in hash)) { //it works with objects! in FF, at least
hash[arr[i]] = true;
result.push(arr[i]);
}
return result;
}
ich frage mich, ob andere Algorithmus für diesen Fall als die beste akzeptiert es ist (oder wenn Sie irgendeine offensichtliche Fehler zu sehen, die behoben werden könnte), oder , was machst du, wenn du das in Javascript brauchst (ich bin mir bewusst, dass jQuery nicht das einzige Framework ist und einige andere haben dies bereits abgedeckt).
Haben diese Anordnung nur skalare Werte enthalten, oder gibt es eine Chance, dass es Objekte und Arrays enthalten wird? –
Und gibt es die Annahme von sortierten oder nicht? –