para eliminar el primer y último elemento de la matriz

102

¿Cómo eliminar el primer y último elemento de una matriz?

Por ejemplo:

var fruits = ["Banana", "Orange", "Apple", "Mango"];

Matriz de salida esperada:

["Orange", "Apple"]
Mohan Ram
fuente
9
esto parece una 'pelota blanda' para crear enlaces a w3schools, incluso ha usado los mismos elementos de matriz. ;-)
Myster

Respuestas:

142
fruits.shift();  // Removes the first element from an array and returns only that element.
fruits.pop();    // Removes the last element from an array and returns only that element. 

Vea todos los métodos para una matriz.


fuente
Es más fácil con jQuery UImyArray.effect( "transfer", { item: 'first&&last', to: bin});
iConnor
3
Estimados votantes en contra, es posible que desee que sus votos en contra sean útiles, así que agregue un comentario que explique qué está mal con la respuesta ..
3
Esto devolverá solo el valor del elemento eliminado (primer o último), no la matriz restante
Jubin Patel
@RC. Solo quiero informar al usuario sobre el trabajo real de la función. Estoy cuestionando tu respuesta.
Jubin Patel
2
Al igual que el usuario, use esta función de la misma manera que la escribe, definitivamente funciona correctamente como elemento de eliminación, PERO si el usuario escribe return fruits.shift(), devolverá SOLAMENTE ese primer elemento y luego lo eliminará de la matriz.
Jubin Patel
79

Crea una copia profunda de 1 nivel.

fruits.slice(1, -1)

Suelta la matriz original.

Gracias a @Tim por señalar las erratas de ortografía.

Anurag
fuente
1
Creo que te refieres en slice()lugar de splice().
Tim Down
71
Cortar la fruta en rodajas es mucho mejor que reventar o mover la fruta.
pettys
2
con el aumento de la popularidad de redux, javscript funcional y cosas inmutables, esta respuesta es mucho mejor
nkint
17

var fruits = ["Banana", "Orange", "Apple", "Mango"];
var newFruits = fruits.slice(1, -1);
console.log(newFruits); //  ["Orange", "Apple"];

Aquí, -1 denota el último elemento de una matriz y 1 denota el segundo elemento.

Pantalón Tripti
fuente
O simplemente fruits = fruits.slice(1,-1);si no tiene que crear una nueva variable.
Hastig Zusammenstellen
9

Yo uso el método de empalme.

fruits.splice(0, 1); // Removes first array element

var lastElementIndex = fruits.length-1; // Gets last element index

fruits.splice(lastElementIndex, 1); // Removes last array element

Para eliminar el último elemento también puede hacerlo de esta manera:

fruits.splice(-1, 1);

Consulte Eliminar el último elemento de la matriz para ver más comentarios al respecto.

Chinokao
fuente
4

push()agrega un nuevo elemento al final de una matriz.
pop()elimina un elemento del final de una matriz.

unshift()agrega un nuevo elemento al comienzo de una matriz.
shift()elimina un elemento del principio de una matriz.

Para eliminar el primer elemento de una matriz arr, use arr.shift()
Para eliminar el último elemento de una matriz arr, usearr.pop()

Harunur Rashid
fuente
2

Puede utilizar Array.prototype.reduce () .

Código:

const fruits = ['Banana', 'Orange', 'Apple', 'Mango'],
      result = fruits.reduce((a, c, i, array) => 0 === i || array.length - 1 === i ? a : [...a, c], []);

console.log(result);

Yosvel Quintero Argüelles
fuente
¡Enfriar para ver reducir para eliminar el primer y último elemento!
Mohan Ram
1

Eliminar el elemento de la matriz es fácil, solo haga lo siguiente

let array_splited = [].split('/');
array_splited.pop()
array_splited.join('/')
Richie
fuente
1

Esto se puede hacer con lodash _.taily _.dropRight:

var fruits = ["Banana", "Orange", "Apple", "Mango"];
console.log(_.dropRight(_.tail(fruits)));
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.11/lodash.min.js"></script>

Penny Liu
fuente
0
var resident_array =  ["RC_FRONT", "RC_BACK", "RC_BACK"];
var remove_item = "RC_FRONT";
resident_array = $.grep(resident_array, function(value) {
            return value != remove_item;
    });
resident_array = ["RC_BACK", "RC_BACK"];
vikas pal
fuente
Elimina el primer elemento de la matriz.
vikas pal
0

Digamos que tiene una lista con nombre de matriz. La función Splice () se puede utilizar tanto para agregar como para eliminar elementos de esa matriz en un índice específico, es decir, que puede estar al principio o al final o en cualquier índice. Por el contrario, hay otro nombre de función shift () y pop () que es capaz de eliminar solo el primer y último elemento de la matriz.

Esta es la función Shift que solo es capaz de eliminar el primer elemento de la matriz

var item = [ 1,1,2,3,5,8,13,21,34 ]; // say you have this number series 
item.shift(); // [ 1,2,3,5,8,13,21,34 ];

La función Pop elimina el elemento de una matriz en su último índice

item.pop(); // [ 1,2,3,5,8,13,21 ];

Ahora viene la función de empalme mediante la cual puede eliminar elementos en cualquier índice

item.slice(0,1); // [ 2,3,5,8,13,21 ] removes the first object
item.slice(item.length-1,1); // [ 2,3,5,8,13 ] removes the last object 

La función de corte acepta dos parámetros ( índice para comenzar , número de pasos restantes );

Labib Hussain
fuente
-1

Usó el método Fruits.shift () para eliminar el primer elemento. El método Fruits.pop () utilizado para el último elemento elimina uno por uno si usó el botón clic. Fruits.slice (posición de inicio, eliminar elemento) También usó el método de corte para eliminar el elemento en el comienzo medio.

manoj chauhan
fuente
1
lea esto y formatee su respuesta correctamente meta.stackexchange.com/questions/22186/…
isuruAb
-1

Para quitar el primer y último elemento de una matriz es el uso de la incorporada en el método de un decir matriz shift()y pop()el fruits.shift()obtener el primer elemento de la matriz como "Banana", mientras que fruits.pop()obtener el último elemento de la matriz como "Mango". por lo que el elemento restante de la matriz será["Orange", "Apple"]

chisom okoye
fuente
2
la respuesta que dio ya existe en esta pregunta: aquí y aquí . Si cree que necesitan más explicaciones, deje un comentario debajo de la respuesta con el que no esté satisfecho.
Skandix
1
¡El formateo de su código ayudará ( meta.stackexchange.com/questions/22186/… )! Además, esta respuesta parece idéntica a otras (por ejemplo, stackoverflow.com/a/43327999/608312 ).
Jake Lee
Notado @JakeSteam
chisom okoye