Duplikate aus einem Array in JavaScript entfernen
-
Verwendung von
Set
zum Entfernen von Duplikaten in JavaScript mit der ECMAScript 6spread
-Syntax -
Verwenden Sie
Array.filter()
, um die Duplikate aus dem JavaScript-Array zu entfernen -
Verwenden Sie
hashtable
, um Duplikate aus einem primitiven Array in JavaScript zu entfernen -
Verwenden Sie die Funktion
_.uniq()
der Bibliothekenunderscore
undLoDash
, um Duplikate aus Arrays in JavaScript zu entfernen
Dieses Tutorial wird erklären, wie wir Duplikate aus einem Array in JavaScript mit verschiedenen Methoden entfernen können. Eine der Methoden ist, das Ziel-Array an den Konstruktor der Klasse Set
zu übergeben, um ein äquivalentes nicht-dupliziertes Array zurückzugeben. Eine andere Möglichkeit ist, die Methode filter()
des JavaScript-Arrays zu verwenden und die Testbedingung in dessen Callback-Funktion zu implementieren.
Verwendung von Set
zum Entfernen von Duplikaten in JavaScript mit der ECMAScript 6 spread
-Syntax
In der Mathematik enthält die Menge eine Gruppe von eindeutigen, nicht doppelten Elementen. In JavaScript kann die Klasse Set
alle diese nicht-duplizierten Elemente aus einem Array holen.
Mit ECMAScript 6 können wir die Macht der spread
-Syntax nutzen, indem wir die Klasse Set
verwenden, um ein neues Array mit nicht-duplizierbaren Elementen zu erhalten, das wir an den Konstruktor Set()
senden.
var arr = [1, 2, 3, 4, 1, 2, 3, 1, 2, 3]
var uniqueArr = [...new Set(arr)]
console.log(uniqueArr)
Ausgabe:
[1, 2, 3, 4]
Verwenden Sie Array.filter()
, um die Duplikate aus dem JavaScript-Array zu entfernen
Mit dem JavaScript-Array wurde eine Funktion höherer Ordnung namens filter()
eingeführt, die eine Schleife über jedes Array-Element zieht, eine Testbedingung darauf anwendet und das Element nur zurückgibt, wenn es die Bedingung erfüllt. Diese Testbedingung wird innerhalb der Callback-Funktion implementiert, die als Argument an die Methode filter()
übergeben wird.
Wir können die Duplikate aus dem Array entfernen, indem wir die Testbedingung so einstellen, dass sie prüft, ob der Index des aktuellen Elements in der Schleife das erste Vorkommen in diesem Array ist. Die Funktion filter()
erhält ein zusätzliches Argument pos
, das den Array-Index des Elements während der Ausführung darstellt.
var arrTwo = ['Hello 1 ', ' Hello 2 ', 'Hello 1 ', ' Hello 2 ', 'Hello 1 again']
const filteredArray = arrTwo.filter(function(ele, pos) {
return arrTwo.indexOf(ele) == pos;
})
console.log('The filtered array ', filteredArray);
Ausgabe:
The filtered array (3) ["Hello 1 ", " Hello 2 ", "Hello 1 again"]
Wenn wir die Pfeil-Syntax von JavaScript ECMAScript 6 verwenden können, kann das Entfernen der doppelten Operation besser implementiert werden.
var arrTwo =
['Hello 1 ', ' Hello 2 ', 'Hello 1 ', ' Hello 2 ', 'Hello 1 again'];
const filteredArray = arrTwo.filter((ele, pos) => arrTwo.indexOf(ele) == pos);
console.log('The filtered array', filteredArray);
Ausgabe:
The filtered array (3) ["Hello 1 ", " Hello 2 ", "Hello 1 again"]
Verwenden Sie hashtable
, um Duplikate aus einem primitiven Array in JavaScript zu entfernen
Wenn wir ein Array haben, das nur aus primitiven Typen wie Zahlen [ 1, 2, 3, 4, 1, 2, 3 ]
besteht, und wir Duplikate aus diesem Array [ 1, 2, 3, 4 ]
entfernen wollen, können wir unsere Funktion filterArray()
mit hashtables
implementieren.
Wir werden ein temporäres Objekt namens found
erstellen, das alle nicht doppelten Werte enthält. Innerhalb der Funktion filter
gibt unsere Bedingung false
zurück, wenn das Element bereits im Objekt found
existiert; andernfalls fügen wir das Element dem Objekt found
mit dem Wert true
hinzu;
var arrThree =
[
'Hello 1 ', ' Hello 2 ', ' Hello 2 ', 'Welcome', 'Hello 1 again',
'Welcome', 'Goodbye'
]
function filterArray(inputArr) {
var found = {};
var out = inputArr.filter(function(element) {
return found.hasOwnProperty(element) ? false : (found[element] = true);
});
return out;
}
const outputArray = filterArray(arrThree);
console.log('Original Array', arrThree);
console.log('Filtered Array', outputArray);
Ausgabe:
Original Array ["Hello 1 ", " Hello 2 ", " Hello 2 ", "Welcome", "Hello 1 again", "Welcome", "Goodbye"]
Filtered Array ["Hello 1 ", " Hello 2 ", "Welcome", "Hello 1 again", "Goodbye"]
Verwenden Sie die Funktion _.uniq()
der Bibliotheken underscore
und LoDash
, um Duplikate aus Arrays in JavaScript zu entfernen
Wenn wir bereits eine der Methoden der underscore
-Bibliothek verwenden, können wir die _.uniq()
-Methode benutzen, da sie nur das erste Vorkommen des Elements aus dem Eingabe-Array zurückgibt.
var arrFive = [1, 2, 3, 1, 5, 2];
console.log('LoDash output', _.uniq(arrFive));
LoDash output [1, 2, 3, 5]
können wir die Bibliothek von hier importieren.
Verwandter Artikel - JavaScript Array
- Überprüfen Sie, ob das Array einen Wert in JavaScript enthält
- Array mit bestimmter Länge in JavaScript erstellen
- Konvertieren ein Array in einen String in JavaScript
- Erstes Element aus einem Array in JavaScript entfernen
- Objekte aus einem Array in JavaScript suchen
- Konvertieren von Argumenten in ein Array in JavaScript