322 votes

JavaScript Array Splice vs slice

Quelle est la différence entre splice et slice ?

 $scope.participantForms.splice(index, 1);
$scope.participantForms.slice(index, 1);
 

410voto

Vinothbabu Points 6643

splice() méthode modifie le tableau d'origine, où, comme slice() ne change pas le tableau d'origine et en fait renvoie un nouveau.

var array=[1,2,3,4,5];
console.log(array.splice(2));

Cette remove 1,2 et l'original du tableau est affecté résultant en [3,4,5].

var array=[1,2,3,4,5]
console.log(array.slice(2));

Cette remove 1,2 et l'original du tableau n'est pas concerné avec des entraînant [3,4,5].

Ci-dessous est simple violon pour la même chose.

//splice
var array=[1,2,3,4,5];
console.log(array.splice(2));

//slice
var array2=[1,2,3,4,5]
console.log(array2.slice(2));


console.log("----after-----");
console.log(array);
console.log(array2);

https://jsfiddle.net/nbrn8182/

125voto

Gagandeep Gambhir Points 546

Épissure et Tranche les deux sont Javascript les fonctions de Tableau.

Splice vs Tranche

  1. La méthode splice() renvoie l'élément supprimé(s) dans un tableau et de la méthode slice() renvoie l'élément sélectionné(s) dans un tableau, comme un nouvel objet array.

  2. La méthode splice() modifie le tableau d'origine et la méthode slice() ne change pas le tableau d'origine.

  3. La méthode splice() peut prendre n le nombre d'arguments et de la méthode slice() prend 2 arguments.

Épissure avec Exemple

Argument 1: Index, Nécessaire. Un entier qui indique à quelle position à ajouter /supprimer des éléments, Utiliser des valeurs négatives pour spécifier la position à partir de la fin du tableau.

Argument 2: Facultatif. Le nombre d'éléments à supprimer. Si la valeur 0(zéro), aucun élément ne sera supprimé. Et si pas le passé, tous les élément(s) de l'index fourni sera supprimé.

Argument 3...n: Facultatif. Le nouvel élément(s) d'être ajoutée au tableau.

var array=[1,2,3,4,5];
console.log(array.splice(2));
// shows [3, 4, 5], returned removed item(s) as a new array object.
 
console.log(array);
// shows [1, 2], original array altered.
 
var array2=[6,7,8,9,0];
console.log(array2.splice(2,1));
// shows [8]
 
console.log(array2.splice(2,0));
//shows [] , as no item(s) removed.
 
console.log(array2);
// shows [6,7,9,0]

Coupez à l'aide d'Exemple

Argument 1: Requis. Un entier qui spécifie l'endroit où commencer la sélection (Le premier élément a un indice de 0). Utiliser des nombres négatifs pour sélectionner à partir de la fin d'un tableau.

Argument 2: Facultatif. Un entier qui spécifie où à la fin de la sélection, mais ne comprennent pas. Si ce paramètre est omis, tous les éléments de la position de départ et à la fin du tableau seront sélectionnés. Utiliser des nombres négatifs pour sélectionner à partir de la fin d'un tableau.

var array=[1,2,3,4,5]
console.log(array.slice(2));
// shows [3, 4, 5], returned selected element(s).
 
console.log(array.slice(-2));
// shows [4, 5], returned selected element(s).
console.log(array);
// shows [1, 2, 3, 4, 5], original array remains intact.
 
var array2=[6,7,8,9,0];
console.log(array2.slice(2,4));
// shows [8, 9]
 
console.log(array2.slice(-2,4));
// shows [9]
 
console.log(array2.slice(-3,-1));
// shows [8, 9]
 
console.log(array2);
// shows [6, 7, 8, 9, 0]

27voto

Alec Kravets Points 2535

Le slice() la méthode renvoie une copie d'une partie d'un tableau dans un tableau d'objet.

$scope.participantForms.slice(index, 1);

Cela ne veut PAS changer l' participantForms tableau, mais renvoie un nouveau tableau contenant le seul élément que l'on trouve à l' index position dans le tableau d'origine.

Le splice() méthode modifie le contenu d'un tableau en supprimant les éléments existants et/ou en ajoutant de nouveaux éléments.

$scope.participantForms.splice(index, 1);

Cela permettra de supprimer un élément de l' participantForms tableau à l' index position.

Ce sont les Javascript native des fonctions, AngularJS n'a rien à faire avec eux.

13voto

mrunion Points 707

Splice et Slice sont des commandes Javascript intégrées - pas spécifiquement des commandes AngularJS. Slice renvoie les éléments du tableau à partir du "début" jusque juste avant les spécificateurs "fin". Splice mute le tableau actuel, commence au "début" et conserve le nombre d'éléments spécifiés. Google a beaucoup d'informations à ce sujet, il suffit de chercher.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X