Je veux avoir un tableau simple de valeurs, à savoir
var simpleArray = ["SE1","SE2","SE3"];
Je souhaite vérifier ce tableau lorsqu’une action se produit (un clic sur une couche de carte Google), qui transmettra une valeur à cette fonction et appenda la valeur au tableau ou la supprimera du tableau s’il existe déjà.
Je suis maintenant un peu confus d’avoir vu .splice / push / inArray / indexOf (cela ne fonctionne pas dans IE) / grep (jQuery) – je ne sais pas quelle est la meilleure pratique.
En supposant que l’ordre des éléments importe peu, vous pouvez faire quelque chose comme ceci:
function toggleArrayItem(a, v) { var i = a.indexOf(v); if (i === -1) a.push(v); else a.splice(i,1); }
La méthode .indexOf()
fonctionne dans IE à partir de la version 9, mais si vous devez prendre en charge des versions plus anciennes d’IE, vous pouvez utiliser un shim comme expliqué à MDN . Ou si vous utilisez jQuery, utilisez quand même $.inArray()
place.