usuń elementy z tablicy JavaScript

div>

Tablice JavaScript umożliwiają grupowanie wartości i iterację nad nimi. Elementy tablicy można dodawać i usuwać na różne sposoby. Niestety nie ma prostej tablicy.Usuń metodę.

Jak usunąć element z tablicy JavaScript?,

zamiast metody delete, tablica JavaScript ma wiele sposobów czyszczenia wartości tablicy.

możesz usunąć elementy z końca tablicy za pomocą pop, Od początku za pomocą shift lub od środka za pomocą splice. Metoda filtrowania tablicy JavaScript do tworzenia nowej tablicy z żądanymi elementami, bardziej zaawansowany sposób usuwania niechcianych elementów.,dozwolone usuwanie elementów tablicy za pomocą operatora Delete

  • Wyczyść lub zresetuj tablicę JavaScript
  • podsumowanie
  • istnieją różne metody i techniki, których możesz użyć do usuwania elementów z tablic JavaScript:

    • pop – usuwa z końca tablicy
    • shift – usuwa z początku tablicy
    • splice – usuwa z określonego indeksu tablicy
    • filtr – pozwala programowo usuwać elementy z tablicy

    dowiesz się także innych sposobów usuwania elementów z tablicy, które mogą nie być tak oczywiste, jak w przypadku lodash.,

    usuwanie elementów z końca tablicy JavaScript

    elementy tablicy JavaScript można usunąć z końca tablicy ustawiając właściwość length na wartość mniejszą niż bieżąca wartość. Każdy element, którego indeks jest większy lub równy nowej długości, zostanie usunięty.

     var ar = ; ar.length = 4; // set length to remove elements console.log( ar ); // 

    metoda pop usuwa ostatni element tablicy, zwraca ten element i aktualizuje właściwość length. Metoda pop modyfikuje tablicę, na której jest wywoływana, co oznacza, że w przeciwieństwie do delete ostatni element jest usuwany całkowicie i długość tablicy jest zmniejszona.,

     var ar = ; ar.pop(); // returns 6 console.log( ar ); // 

    usuwanie elementów z początku tablicy JavaScript

    Jak usunąć pierwszy element tablicy JavaScript?

    metoda shift działa podobnie do metody pop, z tym że usuwa pierwszy element tablicy JavaScript zamiast ostatniego.

    nie ma żadnych parametrów, ponieważ metoda shift usunęła tylko pierwszy element tablicy. Po usunięciu elementu pozostałe elementy są przesuwane w dół.,

     var ar = ; ar.shift(); // returns "zero" console.log( ar ); // 

    metoda shift zwraca element, który został usunięty, aktualizuje indeksy pozostałych elementów i aktualizuje właściwość length. Modyfikuje tablicę, na której jest wywoływana.

    jeżeli nie ma elementów lub długość tablicy wynosi 0, metoda zwraca undefined.

    używanie Splice do usuwania elementów tablicy w JavaScript

    metoda splice może być używana do dodawania lub usuwania elementów z tablicy. Pierwszy argument określa miejsce, w którym należy rozpocząć dodawanie lub usuwanie elementów. Drugi argument określa liczbę elementów do usunięcia., Trzeci i kolejne argumenty są opcjonalne; określają elementy, które mają być dodane do tablicy.

    tutaj używamy metody splice do usunięcia dwóch elementów zaczynających się od pozycji trzeciej (indeks zerowy):

     var arr = ; var removed = arr.splice(2,2); 

    tablica zawierająca usunięte elementy jest zwracana metodą splice. Można zobaczyć, że usunięta tablica zawiera i oryginalna tablica zawiera pozostałe wartości.

    metoda splice może być również użyta do usunięcia zakresu elementów z tablicy.,

     var list = ; list.splice(0, 2); // Starting at index position 0, remove two elements and retains .

    usuwanie elementów tablicy według wartości za pomocą Splice

    Jeśli znasz wartość, którą chcesz usunąć z tablicy, możesz użyć metody splice. Najpierw musisz zidentyfikować indeks pozycji docelowej. Następnie użyjesz indeksu jako elementu startowego i usuniesz tylko jeden element.

     var arr = ; for( var i = 0; i < arr.length; i++){ if ( arr === 5) { arr.splice(i, 1); } } //=> 

    jest to prosty przykład, w którym elementy są liczbami całkowitymi. Jeśli masz szereg obiektów, potrzebujesz bardziej wyrafinowanej procedury.

    To działa, jeśli chcesz usunąć tylko jeden element., Jeśli chcesz usunąć wiele elementów, które spełniają Twoje kryteria, jest usterka.

    gdy elementy są usuwane z tablicy, indeks nadal wzrasta, a następny element po dopasowanej wartości jest pomijany.

    prostym rozwiązaniem jest zmodyfikowanie powyższego przykładu w celu zmniejszenia zmiennej index tak, aby nie ominęła ona następnego elementu w tablicy.

     var arr = ; for( var i = 0; i < arr.length; i++){ if ( arr === 5) { arr.splice(i, 1); i--; } } //=> 

    w zmodyfikowanym przykładzie dodałem 2 dodatkowe 5 wartości do tablicy. Dodałem też 'i–;' po wywołaniu splice.

    teraz, gdy wykonasz pętlę, usunie ona wszystkie pasujące elementy.,

    podziękowania dla Kristiana Slettena za zwrócenie uwagi na problem z pominięciem pętli poniższego elementu.

    używając metody Array filter do usuwania elementów według wartości

    w przeciwieństwie do metody splice, filter tworzy nową tablicę. filter() nie mutuje tablicy, na której jest wywoływana, ale zwraca nową tablicę.

    filter () ma jeden parametr, metodę wywołania zwrotnego. Wywołanie zwrotne jest wyzwalane podczas iteracji metody filtra przez elementy tablicy. Do wywołania zwrotnego zostaną przekazane trzy wartości: bieżąca wartość lub element, bieżący indeks tablicy i pełna tablica.,

    metoda wywołania zwrotnego powinna zwracać wartość true lub false. Twoim obowiązkiem jest przetestowanie wartości (elementu), aby sprawdzić, czy spełnia Twoje kryteria. Jeśli tak, możesz zwrócić true. Elementy zwracające true są dodawane do nowej, filtrowanej tablicy.

     var array = ; var filtered = array.filter(function(value, index, arr){ return value > 5; }); //filtered => //array => 

    zwracana jest nowa tablica zawierająca pasujące wartości. Oryginalna tablica pozostaje nietknięta. Uważam to za przydatne, ponieważ często chcę zachować oryginalne źródło danych, ale pobierać podzbiory oparte na różnych zestawach logicznych.,

    metoda usuwania tablicy Lodash

    czasami biblioteki narzędzi są najlepszym sposobem na rozwiązanie bardziej złożonych problemów. Lodash zapewnia bogaty zestaw metod manipulacji tablicami, jedną z nich jest usuwanie.

    metoda Lodash remove działa podobnie do metody array filter, ale w pewnym sensie odwrotnie. Nie zapisuje oryginalnych wartości tablicy, ale usuwa pasujące elementy. Zwraca pasujące elementy jako nową tablicę.

    var array = ;var evens = _.remove(array, function(n) { return n % 2 === 0;});console.log(array);// => console.log(evens);// => 

    Tworzenie metody usuwania

    Jak wspomniałem wcześniej, nie ma natywnej tablicy.Usuń metodę., Metoda Lodash lodash rozwiązuje ten problem, ale nie zawsze możesz chcieć użyć Lodash. Nie oznacza to, że nie można utworzyć metody użytkowej. John Resig dał nam model do naśladowania, jednak rozszerzył prototyp tablicy, co jest złym pomysłem.

    zamiast tego utworzyłem metodę Array remove utility, którą można dodać do helpera lub biblioteki narzędzi. Podobnie jak metoda Lodash remove, pierwszym parametrem jest tablica docelowa. Używa tablicy.filtr zwraca elementy, które nie pasują do wartości.

    ta metoda jest prosta, przyjmuje proste wartości, takie jak liczby lub ciągi znaków., Możesz zmodyfikować tę metodę, aby użyć metody customcomparison, ale myślę, że łatwiej byłoby po prostu użyć metody filtrowania bezpośrednio.

    jawne usuwanie elementów tablicy za pomocą operatora Delete

    można usunąć określone elementy tablicy za pomocą operatora delete:

     var ar = ; delete ar; // delete element with index 4 console.log( ar ); // alert( ar ); // 1,2,3,4,,6

    użycie operatora delete nie ma wpływu na właściwość length. Nie wpływa również na indeksy kolejnych elementów. Tablica staje się rzadka, co jest fantazyjnym sposobem na powiedzenie, że usunięty element nie jest usuwany, ale staje się niezdefiniowany. Porównaj używając delete z metodą splice opisaną poniżej.,

    operator delete jest przeznaczony do usuwania właściwości z obiektów JavaScript, których tablicami są obiekty.

    powodem, dla którego element nie jest usuwany z tablicy, jest operator delete, który polega bardziej na uwalnianiu pamięci niż usuwaniu elementu. Pamięć jest zwalniana, gdy nie ma już odniesień do wartości.

    Wyczyść lub zresetuj tablicę JavaScript

    Co zrobić, jeśli chcesz opróżnić całą tablicę i po prostu zrzucić wszystkie jej elementy?

    istnieje kilka technik, których możesz użyć do utworzenia pustej lub nowej tablicy.,

    najprostszą i najszybszą techniką jest ustawienie zmiennej tablicy na pustą tablicę:

    var ar = ;//do stuffar = ;//a new, empty array!

    problem, który może być wywołany, polega na tym, że masz odwołania do zmiennej. Odniesienia do tej zmiennej nie ulegną zmianie, nadal będą zawierały wartości oryginalnej tablicy. To oczywiście może spowodować błąd.

    jest to zbyt uproszczony przykład tego scenariusza:

    var arr1 = ;var arr2 = arr1; // Reference arr1 by another variable arr1 = ; console.log(arr2); // Output 

    prostą sztuczką, aby wyczyścić tablicę, jest ustawienie jej właściwości length na 0.,

    var ar = ;console.log(ar); // Output ar.length = 0;console.log(ar); // Output 

    inną nienaturalną techniką jest użycie metody splice, przekazującej długość tablicy jako 2.parametr. Zwróci to kopię oryginalnych elementów, które mogą być przydatne w Twoim scenariuszu.

    var ar = ;console.log(ar); // Output ar.splice(0, ar.length);console.log(ar); // Output 

    dwie ostatnie techniki nie tworzą nowej tablicy, lecz zmieniają jej elementy. Oznacza to, że odniesienia również powinny być aktualizowane.

    jest inny sposób, używając pętli while. Wydaje mi się to trochę dziwne, ale jednocześnie wygląda fantazyjnie, więc może zaimponować znajomym!,

    var ar = ;console.log(ar); // Output while (ar.length) { ar.pop(); }console.log(ar); // Output 

    nie chodzi mi o czyszczenie tablicy JavaScript, ale działa i jest czytelna. Niektóre testy wydajności wykazały również, że jest to najszybsza technika, więc może jest lepsza niż pierwotnie myślałem!

    podsumowanie

    usuwanie elementów tablicy JavaScript jest ważne dla zarządzania danymi. Nie jest dostępna ani jedna metoda 'Usuń', ale istnieją różne metody i techniki, których można użyć do usunięcia niechcianych elementów tablicy.

    w tym artykule dokonano przeglądu tych metod i sposobu ich stosowania., Widziałeś również, jak utworzyć metodę pomocniczą, która sprawia, że usuwanie elementów z tablicy jest nieco łatwiejsze i spójne.

    podziękowania dla Roba Sherwooda za wskazanie kilku literówek składniowych!