usuń pierwszy element z tablicy i zwróć tablicę bez pierwszego elementu


108

var myarray = ["item 1", "item 2", "item 3", "item 4"];

//removes the first element of the array, and returns that element.
alert(myarray.shift());
//alerts "item 1"

//removes the last element of the array, and returns that element.
alert(myarray.pop());
//alerts "item 4"

  1. Jak usunąć pierwszą tablicę, ale zwrócić tablicę bez pierwszego elementu
  2. W moim przykładzie powinienem dostać, "item 2", "item 3", "item 4"gdy usunę pierwszy element

6
alert(array.slice(1))lubarray.shift(); alert(array);
Thomas

2
@Thomas, kiedy używam myarray.shift()zwraca, "item 1"to, czego chcę, to powrót"item 2", "item 3", "item 4"
Brownman Revival

Proszę przeczytać cały kod, który napisałem, używającshift()
Thomas

1
Jeśli chcesz utworzyć nową tablicę bez pierwszego elementu, użyj plasterka.
Arnial

6
[,...myarray] = myarray;
Żeby

Odpowiedzi:


155

Powinno to usunąć pierwszy element, a następnie możesz zwrócić pozostałe:

var myarray = ["item 1", "item 2", "item 3", "item 4"];
    
myarray.shift();
alert(myarray);

Jak sugerowali inni, możesz również użyć plasterka (1);

var myarray = ["item 1", "item 2", "item 3", "item 4"];
  
alert(myarray.slice(1));


28
Zauważ, że slice(1) nie „usuwa pierwszego elementu” z tablicy. Zamiast tego tworzy nową tablicę z płytkimi kopiami wszystkich wartości z tablicy z wyjątkiem pierwszej.
TJ Crowder

2
Przydatne do użycia slice (1), jeśli masz tablicę tablic.
Flummox - Don't be evil SE

29

Dlaczego nie skorzystać z ES6?

 var myarray = ["item 1", "item 2", "item 3", "item 4"];
 const [, ...rest] = myarray;
 console.log(rest)


Podoba mi się ten pomysł, poza tym, że najpierw będzie to nieużywana stała.
giovannipds

4
Można to naprawić za pomocą const [,...rest] = myarray= O = D
giovannipds

6

Spróbuj tego

    var myarray = ["item 1", "item 2", "item 3", "item 4"];

    //removes the first element of the array, and returns that element apart from item 1.
    myarray.shift(); 
    console.log(myarray); 

wypróbowałeś ten? zobacz moje zaktualizowane pytanie z fragmentem, który wróci"item 1"
Brownman Revival

3

Można to zrobić w jednej linii z lodash _.tail:

var arr = ["item 1", "item 2", "item 3", "item 4"];
console.log(_.tail(arr));
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.11/lodash.min.js"></script>


-1

Możesz użyć array.slice (0,1) // Pierwszy indeks jest usuwany i zwracana jest tablica.


2
Pierwszy indeks nie jest usuwany, tworzona jest kopia bez pierwszego elementu. Oryginalna tablica nie jest modyfikowana.
Emaborsa

Ponadto wycinek (0,1) zwróci tablicę zawierającą tylko pierwszy element . Zamiast tego musisz wywołać slice (1), aby uzyskać tablicę zawierającą wszystkie elementy oprócz pierwszego , tak jak w zaakceptowanej odpowiedzi
schellmax
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.