var arr = [1,2,3,5,6];
Usuń pierwszy element
Chcę usunąć pierwszy element tablicy, aby stał się:
var arr = [2,3,5,6];
Usuń drugi element
Aby rozszerzyć to pytanie, co jeśli chcę usunąć drugi element tablicy, aby stał się:
var arr = [1,3,5,6];
javascript
arrays
użytkownik198729
źródło
źródło
slice(start, end)
nie „how_many_to_remove”splice
nieslice
.Odpowiedzi:
Aby uzyskać bardziej elastyczne rozwiązanie, użyj
splice()
funkcji. Pozwala usunąć dowolny element z tablicy w oparciu o wartość indeksu:źródło
arr.splice(1,1)
dla drugiego elementu.splice()
ponad,shift()
ponieważ jest bardziej elastyczny. W przyszłości mogę chcieć zrobić coś innego i nie zawsze chcę usunąć tylko jeden element, a nawet pierwszy element.shift()
jest idealny do twojej sytuacji.shift()
usuwa pierwszy element z tablicy i zwraca ten element. Ta metoda zmienia długość tablicy.źródło
shift()
sięsplice(..., ...)
, ponieważ jest znacznie bardziej wyraźne, bezpośrednie.shift
jest szybszy, chyba że łączysz duże listy jsperf.com/splice-vs-shift3 i jsperf.com/splice-vs-shift2Array.prototype.shift
Sposób usuwa się pierwszy element tablicy i zwraca go. Zmienia oryginalną tablicę.źródło
nie jest destrukcyjny, splot i shift zmodyfikują twoją oryginalną tablicę
źródło
Napisałem mały artykuł o wstawianiu i usuwaniu elementów z dowolnych pozycji w tablicach Javascript.
Oto mały fragment, aby usunąć element z dowolnej pozycji. Rozszerza to klasę Array w JavaScript i dodaje metodę remove (index).
Aby więc usunąć pierwszy element z twojego przykładu, wywołaj arr.remove ():
Aby usunąć drugi element,
Oto mały artykuł z metodami wstawiania i usuwania dla klasy Array.
Zasadniczo nie różni się to od innych odpowiedzi z użyciem splajnu, ale nazwa
splice
nie jest intuicyjna, a jeśli masz to wywołanie w całej aplikacji, sprawia to, że kod jest trudniejszy do odczytania.źródło
Może coś takiego:
źródło
Inne odpowiedzi są świetne, chciałem tylko dodać alternatywne rozwiązanie
ES6
funkcji Array:filter
.filter()
tworzy nową tablicę z elementami spełniającymi określone kryteria z istniejącej tablicy.Dzięki temu możesz łatwo używać go do usuwania elementów, które nie spełniają kryteriów. Zaletą tej funkcji jest to, że można jej używać na złożonej tablicy, a nie tylko na ciągach i liczbach.
Usuń pierwszy element :
Usuń drugi element :
Usuń nieparzysty element :
Usuń przedmioty, których nie ma na magazynie
źródło
Możesz użyć funkcji ES6 Destr Struktura Assignment z operatorem spoczynkowym. Przecinek wskazuje miejsce, w którym chcesz usunąć element, a operator reszty (... arr), aby dać ci pozostałe elementy tablicy.
źródło
Array.splice()
ma interesującą właściwość, której nie można użyć do usunięcia pierwszego elementu. Musimy się więc uciekaćźródło
Rozwiązanie maszynopisu, które nie mutuje oryginalnej tablicy
źródło
Istnieje wiele sposobów usunięcia elementu z tablicy. Pozwól mi wskazać najczęściej używane opcje poniżej. Piszę tę odpowiedź, ponieważ ze wszystkich tych opcji nie mogłem znaleźć odpowiedniego powodu. Odpowiedź na pytanie to opcja 3 ( Splice () ).
1) SHIFT () - Usuń pierwszy element z oryginalnej tablicy i zwróć pierwszy element
Zobacz odwołanie do Array.prototype.shift () . Użyj tego tylko wtedy, gdy chcesz usunąć pierwszy element i tylko jeśli nie masz nic przeciwko zmianie oryginalnej tablicy.
2) SLICE () - Zwraca kopię tablicy oddzieloną początkowym indeksem i końcowym indeksem
Zobacz odwołanie do Array.prototype.slice () . Nie można usunąć określonego elementu z tej opcji. Możesz tylko wyciąć istniejącą tablicę i uzyskać ciągłą część tablicy. To jak wycinanie tablicy z określonych indeksów. Oryginalna tablica nie ulega zmianie.
3) SPLICE () - Zmień zawartość tablicy, usuwając lub zastępując elementy o określonych indeksach.
Zobacz odwołanie do Array.prototype.splice () . Metoda splice () zmienia zawartość tablicy, usuwając lub zastępując istniejące elementy i / lub dodając nowe elementy na miejscu. Zwraca zaktualizowaną tablicę. Oryginalna tablica zostanie zaktualizowana.
źródło
Możesz to również zrobić, zmniejszając:
źródło