Dies kann eine globale Funktion oder eine Methode eines benutzerdefinierten Objekts sein, wenn es Ihnen nicht erlaubt ist, zu nativen Prototypen hinzuzufügen. Es entfernt alle Elemente aus dem Array, die mit einem der Argumente übereinstimmen.
Array.prototype.remove = function() {
var what, a = arguments, L = a.length, ax;
while (L && this.length) {
what = a[--L];
while ((ax = this.indexOf(what)) !== -1) {
this.splice(ax, 1);
}
}
return this;
};
var ary = ['three', 'seven', 'eleven'];
ary.remove('seven');
/* zurückgegebener Wert: (Array)
three,eleven
*/
Um es global zu machen-
function removeA(arr) {
var what, a = arguments, L = a.length, ax;
while (L > 1 && arr.length) {
what = a[--L];
while ((ax= arr.indexOf(what)) !== -1) {
arr.splice(ax, 1);
}
}
return arr;
}
var ary = ['three', 'seven', 'eleven'];
removeA(ary, 'seven');
/* zurückgegebener Wert: (Array)
three,eleven
*/
Und um sich um IE8 und darunter zu kümmern-
if(!Array.prototype.indexOf) {
Array.prototype.indexOf = function(what, i) {
i = i || 0;
var L = this.length;
while (i < L) {
if(this[i] === what) return i;
++i;
}
return -1;
};
}