在Javascript中将值切入和切出数组

我想要一个简单的数组,即

var simpleArray = ["SE1","SE2","SE3"]; 

我想在动作发生时检查此数组(点击谷歌地图图层),它会将值传递给此函数并将值添加到数组中,或者如果数组已存在则将其从数组中删除。

我现在只是看到.splice / push / inArray / indexOf(在IE中不起作用)/ grep(jQuery)时有点困惑 – 不确定最佳做法是什么。

假设项目的顺序无关紧要,你可以这样做:

 function toggleArrayItem(a, v) { var i = a.indexOf(v); if (i === -1) a.push(v); else a.splice(i,1); } 

从版本9开始, .indexOf()方法在IE中工作,但如果您需要支持较旧的IE版本,则可以使用MDN中所述的垫片。 或者,如果您正在使用jQuery,请使用$.inArray()代替。