Vous pouvez le faire en utilisant une .slice()
méthode comme:
arr.slice(0, -1); // returns [1,0]
Voici une démo:
var arr = [1, 0, 2];
var newArr = arr.slice(0, -1); // returns [1,0]
console.log(newArr);
$('#div1').text('[' + arr + ']');
$('#div2').text('[' + newArr + ']');
<script src="http://code.jquery.com/jquery.min.js"></script>
<b>Original Array : </b>
<div id="div1"></div>
<br/>
<b>After slice(0, -1): </b>
<div id="div2"></div>
au lieu de faire:
arr.slice(-1); // returns [2]
Voici une démo:
var arr = [1, 0, 2];
var newArr = arr.slice(-1); // returns [2]
console.log(newArr);
$('#div1').text('[' + arr + ']');
$('#div2').text('[' + newArr + ']');
<script src="http://code.jquery.com/jquery.min.js"></script>
<b>Original Array : </b>
<div id="div1"></div>
<br/>
<b>After slice(-1): </b>
<div id="div2"></div>
Explication:-
Maintenant, la syntaxe de base de Array.prototype.slice()
ou en bref slice()
est la suivante:
arr.slice([begin[, end]])
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 comme
arr.slice(0) // returns [1,0,2]
il 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 faisons
arr.slice(1) // returns [0,2]
il 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'est 2
( comme nous l'avons déjà vu dans la démonstration ci-dessus ).
Maintenant, parlons du end
paramètre dans la slice()
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: -
var arr = [1, 0, 2, 5, 3, 9];
et nous voulons obtenir uniquement les 2,5,3
éléments du tableau. Maintenant, la position 2
du début de la séquence est 2
et pour le dernier élément 3
c'est 4
. 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 la slice()
méthode ici comme
arr.slice(2, 5) // returns [2,5,3]
Dans votre cas, nous avons implémenté -1
comme paramètre final, donc notre code est comme
arr.slice(0, -1) // returns [1,0]
En 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 comme
arr.slice(0, 2) // returns [1,0]
nous obtiendrons la même sortie. Mais, j'ai utilisé -1
ici comme son plus facile à implémenter même pour un long tableau comme
[0,2,3,1,2,9,3,6,3,9,1,0,2,9,0,1,1,2,3,4,7,9,1]
Si 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 faire
arr.slice(0, -1) // same result as arr.slice(0, 22)
J'espère que cela aide!