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 beginparamè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 -1comme 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 endparamè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 2du début de la séquence est 2et pour le dernier élément 3c'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é -1comme paramètre final, donc notre code est comme
arr.slice(0, -1) // returns [1,0]
En tant qu'indice négatif, endindique 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é -1ici 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!