Duplikate aus einem Array in JavaScript entfernen

Moataz Farid 12 Oktober 2023
  1. Verwendung von Set zum Entfernen von Duplikaten in JavaScript mit der ECMAScript 6 spread-Syntax
  2. Verwenden Sie Array.filter(), um die Duplikate aus dem JavaScript-Array zu entfernen
  3. Verwenden Sie hashtable, um Duplikate aus einem primitiven Array in JavaScript zu entfernen
  4. Verwenden Sie die Funktion _.uniq() der Bibliotheken underscore und LoDash, um Duplikate aus Arrays in JavaScript zu entfernen
Duplikate aus einem Array in JavaScript 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