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

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));


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)


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); 

¿ "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>


-1

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


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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.