para remover o primeiro e o último elemento da matriz

102

Como remover o primeiro e o último elemento de uma matriz?

Por exemplo:

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

Matriz de saída esperada:

["Orange", "Apple"]
Mohan Ram
fonte
9
isto se parece com uma 'bola macia' para criar links para w3schools, você já usou os mesmos elementos de array. ;-)
Myster

Respostas:

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. 

Veja todos os métodos de um Array.


fonte
É mais fácil com o jQuery UImyArray.effect( "transfer", { item: 'first&&last', to: bin});
iConnor
3
Caros downvoters, você pode querer que seus downvotes sejam úteis, então adicione um comentário explicando o que há de errado com a resposta.
3
Isso retornará apenas o valor do elemento removido (primeiro ou último), não a matriz restante
Jubin Patel
@RC. Desejo apenas informar o usuário sobre o trabalho real da função. Estou questionando sua resposta.
Jubin Patel de
2
Da mesma forma que o usuário usa esta função da mesma forma que você a escreve, ela definitivamente funciona como remover elemento, MAS se o usuário escrever, return fruits.shift()ela retornará SOMENTE aquele primeiro elemento e então removerá do array.
Jubin Patel de
78

Cria uma cópia de profundidade de 1 nível.

fruits.slice(1, -1)

Solte o array original.

Obrigado a @Tim por apontar a errata ortográfica.

Anurag
fonte
1
Acho que você quer dizer, em slice()vez de splice().
Tim Down
70
Cortar frutas é muito melhor do que estourar ou mexer nas frutas.
pettys de
2
com o aumento da popularidade de redux, javscript funcional e coisas imutáveis, essa resposta é muito melhor
nkint
17

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

Aqui, -1 denota o último elemento em uma matriz e 1 denota o segundo elemento.

Calça tripti
fonte
Ou apenas fruits = fruits.slice(1,-1);se você não precisa criar uma nova variável.
Hastig Zusammenstellen
9

Eu uso o método de emenda.

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 remover o último elemento, você também pode fazer desta forma:

fruits.splice(-1, 1);

Consulte Remover o último item da matriz para ver mais comentários sobre ele.

Chinokao
fonte
4

push()adiciona um novo elemento ao final de uma matriz.
pop()remove um elemento do final de uma matriz.

unshift()adiciona um novo elemento ao início de uma matriz.
shift()remove um elemento do início de uma matriz.

Para remover o primeiro elemento de uma matriz arr, use. arr.shift()
Para remover o último elemento de uma matriz arr, usearr.pop()

Harunur Rashid
fonte
2

Você pode usar 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 Arguelles
fonte
Legal ver reduzir para remover o primeiro e o último item!
Mohan Ram
1

Para remover o elemento do array é fácil basta fazer o seguinte

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

Isso pode ser feito com lodash _.taile _.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
fonte
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 amigo
fonte
Remova o primeiro elemento da matriz.
vikas pal
0

Digamos que você tenha uma lista de nomes de array. A função Splice () pode ser usada tanto para adicionar quanto para remover itens naquele array em um índice específico, ou seja, que pode estar no início ou no final ou em qualquer índice. Pelo contrário, há outro nome de função shift () e pop () que é capaz de remover apenas o primeiro e o último item do array.

Esta é a função Shift que só é capaz de remover o primeiro elemento da 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 ];

A Função Pop remove o item de uma matriz em seu último índice

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

Agora vem a função de emenda pela qual você pode remover o item de qualquer í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 

A função de fatia aceita dois parâmetros ( Índice para começar , número de etapas restantes );

Labib Hussain
fonte
-1

Você usou o método Fruits.shift () para remover o primeiro elemento. O método Fruits.pop () usado para o último elemento remove um por um se você usou o clique de botão. Fruits.slice (start position, delete element) Você também usou o método slice para remover o elemento no início do meio.

manoj chauhan
fonte
1
leia isto e formate sua resposta corretamente meta.stackexchange.com/questions/22186/…
isuruAb
-1

Para remover o primeiro e último elemento de uma matriz é usando o built-in método de um ou seja, variedade shift()e pop()a fruits.shift()obter o primeiro elemento da matriz como "Banana", enquanto fruits.pop()obter o último elemento do array como "Mango". então o elemento restante da matriz será["Orange", "Apple"]

chisom okoye
fonte
2
a resposta que você deu já existe nesta questão: aqui e aqui . Se achar que eles precisam de mais explicações, deixe um comentário abaixo da resposta que o deixa insatisfeito.
Skandix
1
Formatar seu código ajudará ( meta.stackexchange.com/questions/22186/… )! Além disso, essa resposta parece idêntica a outras (por exemplo, stackoverflow.com/a/43327999/608312 ).
Jake Lee
Anotado por @JakeSteam
chisom okoye