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
Odrodzenie Brownman
źródło
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));

Jesper Højer
źródło
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)

Tudor Morar
źródło
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); 
Jestem Geeker
źródło
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>

Penny Liu
źródło
-1

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

Hassan Abbas
źródło
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