J'ai:
var array = new Array();
array.push("A");
array.push("B");
array.push("C");
Je veux pouvoir faire quelque chose comme:
array.remove("B");
mais il n'y a pas de fonction de suppression. Comment faire cela?
javascript
arrays
Rolando
la source
la source
.indexOf()
et.splice()
devrait faire l'affaire. Ou peut - être, au contraire,.filter()
.Réponses:
Je mets à jour ce fil avec une solution 1 ligne plus récente:
L'idée est essentiellement de filtrer le tableau en sélectionnant tous les éléments différents de l'élément que vous souhaitez supprimer.
Remarque: supprimera toutes les occurrences.
ÉDITER:
Si vous souhaitez supprimer uniquement la première occurrence:
la source
Parcourez la liste dans l'ordre inverse et utilisez la
.splice
méthode.L'ordre inverse est important lorsque toutes les occurrences du terme de recherche doivent être supprimées. Sinon, le compteur augmentera et vous sauterez des éléments.
Lorsque seule la première occurrence doit être supprimée, les éléments suivants fonctionnent également:
la source
0
n'est pas automatiquement plus rapide comme c'est le cas, disons, C. Tant que vous mettez en cache la limite, bien sûr, ce qui compliquerait les choses si vous continuez après le premier match (mais pas si vous vous arrêtez dessus).Liste des doublures
Résolvons ce problème pour ce tableau:
1. Ne supprimez que le premier: Utilisez Si vous êtes sûr que l'élément existe
2. Ne supprimez que le dernier: Utilisez Si vous êtes sûr que l'élément existe
3. Supprimez toutes les occurrences:
la source
DEMO
Vous devez trouver l'emplacement de ce que vous recherchez,
.indexOf()
puis le supprimer avec.splice()
Cela prendra en charge toutes les occurrences.
la source
.indexOf()
vous pouvez ajouter ce à votre fichier javascript.Uncaught ReferenceError: array is not defined
. Qu'est-ce qui ne va pas?.indexOf()
un peu plus. Si vous passezfound
comme deuxième argument à l'.indexOf()
appel dans la boucle while , les éléments du tableau qui ont déjà été vérifiés et qui ont fini par ne pas être égaux ne sont pas vérifiés à nouveau:found = arr.indexOf(what, found);
Simplement
la source
-1
si rien n'est trouvé et oups, splice supprimera 1 élément de la fin du tableauSolution simple (ES6)
Si vous n'avez pas d'élément en double
Démo en ligne (violon)
la source
Vous devez écrire votre propre suppression. Vous pouvez parcourir le tableau, saisir l'index de l'élément que vous souhaitez supprimer et l'utiliser
splice
pour le supprimer.Vous pouvez également créer un nouveau tableau, faire une boucle sur le tableau actuel et si l'objet actuel ne correspond pas à ce que vous souhaitez supprimer, placez-le dans un nouveau tableau.
la source
utilisation:
Cela supprime un élément du tableau, en commençant à l'index 2 (3e élément)
la source
array.splice(2,1)
qui supprime 1 élément à l'index 2 du tableau. consultez https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/splice pour plus de détailsou vous pouvez utiliser:
Le changesArray contiendra la valeur sans 'B'
la source
utilisez array.splice
Source: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/splice
la source
array
etsplice
doit être un point.