supprimer l'objet de tableau avec juste la référence de l'objet
Supposons que j'ai un tableau d'objets appelés MyArray
et que d'une certaine fonction renvoie une référence à un élément particulier à l'intérieur de cette matrice; quelque chose comme ceci:
MyArray = [Object1, Object2, ..., Objectn];
function DoWork() {
var TheObject = GetTheObject(SomeParamter);
}
À ce point, TheObject
points à un certain élément dans le tableau. Supposons que je veux supprimer cet élément à partir de MyArray
, est-ce possible sans avoir à reloop à travers le tableau pour obtenir l'index de l'élément?
Je suis à la recherche de quelque chose comme d'épissage qui fonctionne avec la référence à l'élément plutôt que l'indice de l'élément.
- double possible: stackoverflow.com/questions/3396088/...
- Écrit
TheObject = null
ne sera pas effacer l'objet à partir de la matrice. Vous avez tout faux. - arr.splice(arr.indexOf(obj), 1);
- Si un objet doit être supprimé forme d'un tableau, il n'y a pas moyen de contourner cela, vous ou le moteur effectue une boucle sur le tableau. Ce que vous pouvez penser est d'ajouter un paramètre optionnel pour
GetTheObject
qui va supprimer sitrue
ou les garder sifalse
. - vous l'avez
- non, ce n'est pas un doublon; c'est à propos de l'utilisation d'épissage lorsque vous N'avez PAS l'index
Vous devez vous connecter pour publier un commentaire.
Simplement utiliser
Array.le prototype.indexOf
:Gardez à l'esprit que si le ciblage IE < 9, vous devrez introduire un polyfill pour
indexOf
; vous pouvez trouver un dans le MDN page.