eliminar el primer elemento de la matriz y devolver la matriz menos el primer elemento

102

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. Cómo eliminar la primera matriz pero devolver la matriz menos el primer elemento
  2. En mi ejemplo, debería obtener "item 2", "item 3", "item 4"cuando elimino el primer elemento
Renacimiento de Brownman
fuente
6
alert(array.slice(1))oarray.shift(); alert(array);
Thomas
2
@Thomas cuando uso myarray.shift()devoluciones "item 1"lo que quiero es retorno"item 2", "item 3", "item 4"
Brownman Revival
Por favor lea el código completo que escribí, usandoshift()
Thomas
1
Si necesita crear una nueva matriz sin el primer elemento, use slice.
Arnial
6
Solo para agregar uno más a la mezcla :) Con desestructuración:[,...myarray] = myarray;
Me.Name

Respuestas:

151

Esto debería eliminar el primer elemento, y luego puede devolver el restante:

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

Como han sugerido otros, también puede usar slice (1);

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

Jesper Højer
fuente
27
Tenga en cuenta que slice(1) no "elimina el primer elemento" de la matriz. En cambio, crea una nueva matriz con copias superficiales de todos los valores de la matriz excepto el primero.
TJ Crowder
2
Es útil usar slice (1) si tiene una matriz de matrices.
Flummox - Don't be evil SE
25

¿Por qué no utilizar ES6?

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

Tudor Morar
fuente
Me gusta esta idea, excepto que primero será una constante no utilizada.
giovannipds
3
Puede arreglar eso usando const [,...rest] = myarray= O = D
giovannipds
6

Prueba esto

    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); 
Soy friki
fuente
¿ "item 1"
Probaste este
3

Esto se puede hacer en una línea con 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
fuente
-1

Puede usar array.slice (0,1) // Se elimina el primer índice y se devuelve la matriz.

Hassan Abbas
fuente
2
El primer índice no se elimina, se crea una copia sin el primer elemento. La matriz original no se modifica.
Emaborsa
Además, slice (0,1) devolverá una matriz que contiene solo el primer elemento . En su lugar, debe llamar a slice (1) para obtener una matriz que contenga todos menos el primer elemento, como en la respuesta aceptada
schellmax