404 votes

Comment supprimer un élément d'un tableau en JavaScript ?

var arr = [1,2,3,5,6];

Retirer le premier élément

Je veux enlever le premier élément du tableau pour qu'il devienne :

var arr = [2,3,5,6];

Retirer le deuxième élément

Pour étendre cette question, que se passe-t-il si je veux enlever le deuxième élément du tableau pour qu'il devienne :

var arr = [1,3,5,6];

2 votes

slice(start, end) pas Combien de personnes doivent être supprimées ?

2 votes

@Ped arr.unshift() ne REMOVE pas, mais "Ajoute un ou plusieurs éléments au début d'un tableau".

1 votes

@seanjacob c'est splice pas slice Je suppose.

707voto

Joseph Silvashy Points 14960

shift() est idéal pour votre situation. shift() supprime le premier élément d'un tableau et retourne cet élément. Cette méthode modifie la longueur du tableau.

array = [1, 2, 3, 4, 5];

array.shift(); // 1

array // [2, 3, 4, 5]

2 votes

Cela fonctionne, mais ne supprimera que le premier élément du tableau.

59 votes

@Gabriel : n'était-ce pas exactement la question ? Je préfère shift() à splice(..., ...) car il est beaucoup plus explicite, direct.

8 votes

Correction : Il retourne le premier élément, pas un nouveau tableau moins le premier élément, comme dans le lien que vous avez fourni :)

431voto

Gabriel McAdams Points 22323

Pour une solution plus souple, utilisez l'option splice() fonction. Elle vous permet de supprimer tout élément d'un tableau en fonction de la valeur de l'index :

var indexToRemove = 0;
var numberToRemove = 1;

arr.splice(indexToRemove, numberToRemove);

14 votes

Et la question suivante : arr.splice(1,1) pour le deuxième élément.

2 votes

Je préfère splice() sur shift() parce que c'est plus flexible. Je peux vouloir faire quelque chose de différent à l'avenir, et je ne veux pas toujours supprimer un seul élément, ni même le premier.

14 votes

Si vous venez de Google : Gabriel préfère cette réponse, mais vous devez savoir qu'il existe aussi shift(), voir la réponse de Joseph.

73voto

kiuma Points 76
arr.slice(begin[,end])

est non destructif, le splice et le shift modifieront votre tableau d'origine.

10 votes

Oui pour la non-mutation. Cela devrait être plus visible.

61voto

Ped Points 1981

Le site Array.prototype.shift supprime le premier élément d'un tableau et le renvoie. Elle modifie le tableau original.

var a = [1,2,3]
// [1,2,3]
a.shift()
// 1
a
//[2,3]

5 votes

Une grande amélioration par rapport à la réponse de Joseph Silvashy - aucune incohérence entre la description et le code.

16voto

Anurag Points 66470

Rédaction d'un petit article sur l'insertion et la suppression d'éléments à des positions arbitraires dans les tableaux Javascript.

Voici le petit extrait qui permet de supprimer un élément de n'importe quelle position. Il étend la classe Array en Javascript et ajoute la méthode remove(index).

// Remove element at the given index
Array.prototype.remove = function(index) {
    this.splice(index, 1);
}

Ainsi, pour supprimer le premier élément de votre exemple, appelez arr.remove() :

var arr = [1,2,3,5,6];
arr.remove(0);

Pour supprimer le deuxième élément,

arr.remove(1);

Voici un petit article avec des méthodes d'insertion et de suppression pour la classe Array.

Essentiellement, ce n'est pas différent des autres réponses utilisant splice, mais le nom splice n'est pas intuitif, et si vous avez cet appel dans toute votre application, cela ne fait que rendre le code plus difficile à lire.

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