J'ai le tableau suivant.
var arr = [1,0,2];
Je voudrais supprimer le dernier élément c'est-à-dire 2.
J'ai utilisé arr.slice(-1);
mais cela ne supprime pas la valeur.
javascript
arrays
slice
Prithviraj Mitra
la source
la source
arr.slice(0,-1)
était la meilleure solution pour moisplice()
deuxième cas:pop()
.Réponses:
Utiliser une épissure (index, combien)
la source
[1].splice(-1, 1)
=>[1]
[0,1,2] -> [2]
laisser derrière[0,1]
. Si tel est le cas, alors[arr.pop()]
fera l'affaire.array.pop()
changera modifierarray
, tandis queslice(0, -1)
non. La pop est bien sûr plus rapide mais peut ne pas toujours convenir à tous les besoins.Array.prototype.pop () par convention JavaScript.
la source
Vous pouvez le faire en utilisant une
.slice()
méthode comme:Voici une démo:
au lieu de faire:
Voici une démo:
Explication:-
Maintenant, la syntaxe de base de
Array.prototype.slice()
ou en brefslice()
est la suivante:Ici,
le
begin
paramètre est un index de base zéro à partir duquel l'extraction à partir d'un tableau commence. Donc, disons sur la base de l'exemple ci-dessus si nous faisons quelque chose commeil retournerait tous les éléments du tableau depuis le début de la séquence depuis la position 0 et c'est-à-dire
[1,0,2]
. De même, si nous faisonsil reviendrait
[0,2]
puisque 0 est à la position 1 ici et tout ce qui suit. Maintenant, dans votre cas, vous avez passé un indice négatif, c'est-à-dire-1
comme paramètre de début, qui indique un décalage à partir de la fin de la séquence. Donc,slice(-1)
dans votre cas, extrait le dernier élément de tableau de la séquence et c'est2
( comme nous l'avons déjà vu dans la démonstration ci-dessus ).Maintenant, parlons du
end
paramètre dans laslice()
syntaxe de la méthode ici. Il s'agit à nouveau d'un index de base zéro auquel se termine l'extraction à partir d'un tableau. Donc, disons que nous avons un tableau comme: -et nous voulons obtenir uniquement les
2,5,3
éléments du tableau. Maintenant, la position2
du début de la séquence est2
et pour le dernier élément3
c'est4
. Nous devrons terminer l'extraction ici à une position 5, car nous devons obtenir l'élément avant cette position. Donc, nous allons simplement implémenter laslice()
méthode ici commeDans votre cas, nous avons implémenté
-1
comme paramètre final, donc notre code est commeEn tant qu'indice négatif,
end
indique un décalage par rapport à la fin de la séquence. Ainsi,slice(0,-1)
extrait le premier élément à travers l'avant-dernier élément de la séquence. Ainsi, nous obtenons la sortie souhaitée. On peut aussi faire commenous obtiendrons la même sortie. Mais, j'ai utilisé
-1
ici comme son plus facile à implémenter même pour un long tableau commeSi vous voulez simplement supprimer le dernier élément, vous ne voulez pas vous asseoir et calculer la position des 9 derniers ici et les faire comme
arr.slice(0, 22)
. Vous pouvez ensuite simplement implémenter la logique d'index négatif ici et faireJ'espère que cela aide!
la source
arr
mais renvoie plutôt un nouveau tableau qui exclut ce dernier élément. Comme le disent les documents de Mozilla: "La méthode slice () renvoie une copie superficielle d'une partie d'un tableau dans un nouvel objet tableau.".arr.slice(0, -1)
est la meilleure réponse.apprendre par l'exemple:
la source
Vous devrez le faire car
slice
ne modifie pas le tableau d'origine.Si vous souhaitez modifier le tableau d'origine, vous pouvez utiliser
splice
:ou
pop
:la source
Je considérerais
.pop()
la solution la plus `` correcte '', cependant, parfois, cela pourrait ne pas fonctionner car vous devez utiliser un tableau sans le dernier élément juste là ...Dans un tel cas, vous voudrez peut-être utiliser ce qui suit, il retournera
[1,2,3]
tandis
.pop()
que reviendrait4
:ce qui pourrait ne pas être souhaitable ...
J'espère que cela vous fera gagner du temps.
la source
Il y a une fonction pour cela, explication ici :
la source
Vous pouvez simplement utiliser,
arr.pop()
Cela supprime la dernière entrée du tableau.
la source
Utilisez simplement ce qui suit pour votre cas d'utilisation:
Juste une note. Lorsque vous exécutez la
pop()
fonction même si la ligne renvoie l'élément sauté, le tableau d'origine est effectué et l'élément sauté est supprimé.la source
Vous pouvez le faire de deux manières en utilisant
splice()
:arr.splice(-1,1)
arr.splice(arr.length-1,1)
splice(position_to_start_deleting, how_many_data_to_delete)
prend deux paramètres.position_to_start_deleting
: L'index de base zéro d'où commencer la suppression.how_many_data_to_delete
: À partir de l'index indiqué, combien de données consécutives doivent être supprimées.Vous pouvez également supprimer le dernier élément en utilisant
pop()
aspop()
supprime le dernier élément d'un tableau.Utilisation
arr.pop()
la source
arr.slice(-1)
retournera une copie du dernier élément du tableau, mais ne modifie pas le tableau d'origine.Pour supprimer les derniers
n
éléments d'un tableau, utilisezarr.splice(-n)
(notez le "p" dans "splice"). La valeur de retour sera un nouveau tableau contenant les éléments supprimés.Encore plus simple à
n == 1
utiliserval = arr.pop()
la source
// supprime le dernier élément // doit vérifier si arr.length> 0
la source
la source
Il convient de noter que
slice
cela retournera à la fois un nouveau tableau, tandis que.pop()
et.splice()
mutera le tableau existant .Si vous aimez gérer des collections de données avec un style de commande chaîné, vous voudrez vraiment vous en tenir à
slice
quelque chose comme ça.Par exemple:
Cela peut nécessiter beaucoup plus de gâchis et de gestion des variables, pour faire le même genre de chose avec "pop", car contrairement à
map
,filter
etc., vous ne recevez pas un nouveau retour de tableau.C'est le même genre de chose avec
push
, qui ajoute un élément à la fin d'un tableau. Vous pourriez être mieux avec,concat
car cela vous permet de maintenir le flux.la source
splice (index, howmany) - Cette solution sonne bien. Mais cette howmany ne fonctionnera que pour l'indice de tableau positif. Pour supprimer les deux ou trois derniers éléments, utilisez l'index lui-même.
Par exemple, épissez (-2) pour supprimer les deux derniers éléments. épissure (-3) pour supprimer les trois derniers éléments.
la source
Avec Lodash, vous pouvez utiliser dropRight , si vous ne vous souciez pas de savoir quels éléments ont été supprimés:
la source
la source
Solution ECMA5 2019:
Non destructif, générique, à une ligne et ne nécessite qu'un copier-coller à la fin de votre tableau.
la source
I would like to remove the last element
. Cela nécessite une opération destructrice / mutante sur le tableau d'origine.dis que tu as
var arr = [1,0,2]
arr.splice(-1,1)
reviendra vers vousarray [1,0];
toutarr.slice(-1,1)
reviendra vers vousarray [2];
la source
C'est un bon moyen de supprimer le dernier élément:
Détail de l'épissure comme suit:
épissure (startIndex, nombre d'épissures)
la source
La sortie sera: Array [0,1,2,3,4,5] . Cela vous permettra de conserver la même quantité d'éléments de tableau que lorsque vous introduisez une nouvelle valeur.
la source
Une autre approche consiste à filtrer en fonction de l'index:
Remarque:
filter()
crée un nouveau tableau, ne change pas celui existant.la source
Si vous souhaitez supprimer n élément de la fin du tableau en javascript, vous pouvez facilement utiliser:
la source