Il peut s'agir d'une fonction globale ou d'une méthode d'un objet personnalisé, si vous n'êtes pas autorisé à ajouter des prototypes natifs. Elle supprime tous les éléments du tableau qui correspondent à l'un des arguments.
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');
/* returned value: (Array)
three,eleven
*/
Pour qu'il devienne mondial
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');
/* returned value: (Array)
three,eleven
*/
Et pour s'occuper d'IE8 et moins
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;
};
}
3 votes
Voir aussi : Supprimer un élément de tableau par valeur en JavaScript y Supprimer un élément spécifique d'un tableau ?
95 votes
S'IL VOUS PLAÎT, UTILISEZ -->
Array.filter()
0 votes
J'ai écrit plusieurs solutions pour cela (supprimer une ou plusieurs valeurs) et voici ma solution ultime (j'ai fait un benchmark et elle est plus rapide que lodash). Essayez-la : gist.github.com/ardeshireshghi/0d97db4ae09bc2f90609c536fc63c648
0 votes
Vous pouvez également le trouver ici : stackoverflow.com/questions/5767325/ C'est le point de référence : jsperf.com/array-without-benchmark-against-lodash