var arr = [1,2,3,5,6];
Supprimer le premier élément
Je veux supprimer le premier élément du tableau pour qu'il devienne:
var arr = [2,3,5,6];
Supprimer le deuxième élément
Pour étendre cette question, que se passe-t-il si je veux supprimer le deuxième élément du tableau pour qu'il devienne:
var arr = [1,3,5,6];
javascript
arrays
user198729
la source
la source
slice(start, end)
pas 'how_many_to_remove'splice
passlice
je suppose.Réponses:
Pour une solution plus flexible, utilisez la
splice()
fonction. Il vous permet de supprimer n'importe quel élément d'un tableau en fonction de la valeur d'index:la source
arr.splice(1,1)
pour le deuxième élément.splice()
plutôtshift()
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, ou même le premier élément.shift()
est idéal pour votre situation.shift()
supprime le premier élément d'un tableau et renvoie cet élément. Cette méthode modifie la longueur du tableau.la source
shift()
àsplice(..., ...)
car il est beaucoup plus explicite, directe.shift
est plus rapide, sauf si vous épissez de grandes listes jsperf.com/splice-vs-shift3 et jsperf.com/splice-vs-shift2La
Array.prototype.shift
méthode supprime le premier élément d'un tableau et le renvoie. Il modifie le tableau d'origine.la source
est non destructif, l'épissure et le décalage modifieront votre tableau d'origine
la source
A écrit un petit article sur l'insertion et la suppression d'éléments à des positions arbitraires dans les tableaux Javascript.
Voici le petit extrait pour supprimer un élément de n'importe quelle position. Cela étend la classe Array en Javascript et ajoute la méthode remove (index).
Donc, pour supprimer le premier élément de votre exemple, appelez arr.remove ():
Pour supprimer le deuxième élément,
Voici un petit article avec des méthodes d'insertion et de suppression pour la classe Array.
Essentiellement, cela n'est pas différent des autres réponses utilisant l'épissage, mais le nom
splice
n'est pas intuitif, et si vous avez cet appel dans toute votre application, cela rend le code plus difficile à lire.la source
Peut-être quelque chose comme ça:
la source
Réponses Autres sont grands, je voulais juste ajouter une solution de rechange avec
ES6
fonction Array:filter
.filter()
crée un nouveau tableau avec des éléments qui relèvent d'un critère donné à partir d'un tableau existant.Vous pouvez donc facilement l'utiliser pour supprimer les éléments qui ne répondent pas aux critères. Les avantages de cette fonction sont que vous pouvez l'utiliser sur un tableau complexe et pas seulement sur des chaînes et des nombres.
Supprimer le premier élément :
Supprimer le deuxième élément :
Supprimer l'élément impair :
Supprimer les articles qui ne sont pas en stock
la source
Vous pouvez utiliser la fonction ES6 Destructuring Assignment avec un opérateur de repos. Une virgule indique où vous souhaitez supprimer l'élément et l'opérateur reste (... arr) pour vous donner les éléments restants du tableau.
la source
Array.splice()
a la propriété intéressante que l'on ne peut pas l'utiliser pour supprimer le premier élément. Nous devons donc recourir àla source
Solution dactylographiée qui ne mute pas le tableau d'origine
la source
Il existe plusieurs façons de supprimer un élément d'un tableau. Permettez-moi de souligner les options les plus utilisées ci-dessous. J'écris cette réponse parce que je n'ai pas pu trouver une raison valable quant à quoi utiliser de toutes ces options. La réponse à la question est l'option 3 ( Splice () ).
1) SHIFT () - Supprimer le premier élément du tableau d'origine et renvoyer le premier élément
Voir la référence pour Array.prototype.shift () . Utilisez-le uniquement si vous souhaitez supprimer le premier élément et uniquement si vous êtes d'accord avec la modification du tableau d'origine.
2) SLICE () - Renvoie une copie du tableau, séparée par un index de début et un index de fin
Voir la référence pour Array.prototype.slice () . Vous ne pouvez pas supprimer un élément spécifique de cette option. Vous pouvez uniquement prendre une tranche du tableau existant et obtenir une partie continue du tableau. C'est comme couper le tableau à partir des index que vous spécifiez. La baie d'origine n'est pas affectée.
3) SPLICE () - Modifier le contenu d'un tableau en supprimant ou en remplaçant des éléments à des index spécifiques.
Voir la référence pour Array.prototype.splice () . La méthode splice () modifie le contenu d'un tableau en supprimant ou en remplaçant des éléments existants et / ou en ajoutant de nouveaux éléments en place. Renvoie le tableau mis à jour. Le tableau d'origine est mis à jour.
la source
Vous pouvez également le faire avec réduire:
la source