Usuwanie duplikatów z tablic w JavaScript: 3 sposoby
Wstęp
JavaScript to szeroko stosowany język programowania, który umożliwia programistom tworzenie złożonych aplikacji internetowych. Jednym z typowych wyzwań, przed którymi stoją programiści, jest usuwanie duplikatów z tablic. Duplikaty w tablicy mogą prowadzić do różnych problemów, takich jak nieprawidłowe obliczenia, wolniejsze działanie i nieoczekiwane wyniki. W tym artykule przyjrzymy się trzem sposobom usuwania duplikatów z tablic w JavaScript.
Sposób nr 1: Korzystanie z zestawu
Obiekt Set to nowa funkcja dodana w ES6 (ECMAScript 2015), która umożliwia programistom przechowywanie unikalnych wartości dowolnego typu. Aby usunąć duplikaty z tablicy za pomocą zestawu, możemy przekonwertować tablicę na obiekt zestawu, a następnie przekonwertować ją z powrotem na tablicę.
Oto przykład:
const arr = [1, 2, 3, 3, 4, 5, 5];
const uniqueArr = [...new Set(arr)];
console.log(uniqueArr); // [1, 2, 3, 4, 5]
Sposób nr 2: Używanie filter()
Innym sposobem usuwania duplikatów z tablicy jest użycie metody filter(). Metoda filter() tworzy nową tablicę ze wszystkimi elementami, które pomyślnie przejdą test zaimplementowany przez podaną funkcję. Możemy użyć tej metody do usunięcia duplikatów, sprawdzając, czy element już istnieje w tablicy.
Oto przykład:
const arr = [1, 2, 3, 3, 4, 5, 5];
const uniqueArr = arr.filter((item, index) => arr.indexOf(item) === index);
console.log(uniqueArr); // [1, 2, 3, 4, 5]
Sposób nr 3: Używanie funkcji reduce()
Metoda reduce() to kolejny sposób usuwania duplikatów z tablicy. Metoda reduce() stosuje funkcję względem akumulatora i każdego elementu w tablicy, aby zredukować go do pojedynczej wartości. Możemy użyć tej metody, aby utworzyć nową tablicę zawierającą tylko unikalne wartości.
Oto przykład:
const arr = [1, 2, 3, 3, 4, 5, 5];
const uniqueArr = arr.reduce((acc, curr) => {
if (!acc.includes(curr)) {
acc.push(curr)
}
return acc;
}, []);
console.log(uniqueArr); // [1, 2, 3, 4, 5]
Porównanie wydajności
Obiekt Set jest szybszy niż metody filter() i reduce() do usuwania duplikatów z tablic w JavaScript, ponieważ używa algorytmu haszującego do szybkiego identyfikowania unikalnych elementów w tablicy. Oznacza to, że może skutecznie usuwać duplikaty bez konieczności iteracji całej tablicy.
Z drugiej strony metody filter() i reduce() muszą iterować po całej tablicy, aby usunąć duplikaty. Może to być wolniejsze w przypadku dużych tablic, ponieważ wymaga więcej czasu przetwarzania.
Dodatkowo filter() tworzy nową tablicę z elementami, które przejdą pomyślnie funkcję testową, podczas gdy reduce() tworzy nową wartość na podstawie akumulatora i bieżącej wartości tablicy. Te operacje mogą również wydłużyć czas przetwarzania.
Biorąc to pod uwagę, należy zauważyć, że różnica w wydajności między Set a innymi metodami może nie być znacząca w przypadku małych tablic. W rzeczywistości dla bardzo małych tablic różnica może być pomijalna.
Konsternacja
Usuwanie zduplikowanych wartości z tablic jest częstym zadaniem w programowaniu JavaScript. W tym artykule zbadaliśmy trzy różne podejścia do osiągnięcia tego celu: użycie obiektu Set, metody filter() i metody reduce(). Każda metoda ma swoje zalety i wady, a najlepszy wybór będzie zależał od konkretnych potrzeb aplikacji.
Jeśli chodzi o wydajność, użycie obiektu Set jest generalnie szybsze niż pozostałych dwóch metod, ponieważ może szybko zidentyfikować unikalne elementy za pomocą algorytmu haszującego. Jednak w przypadku małych macierzy różnica w wydajności może nie być znacząca.
Podsumowując, programiści powinni wziąć pod uwagę takie czynniki, jak wydajność, czytelność i kompatybilność przy podejmowaniu decyzji, której metody użyć do usunięcia duplikatów z tablic w JavaScript. Wybierając odpowiednie podejście, programiści mogą zapewnić wydajny i efektywny kod.
Jeśli masz jakieś pytania, służę pomocą, czekam na Ciebie w sekcji komentarzy :)

![Czym w ogóle jest lista połączona? [Część 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































