Je recherche un moyen efficace de supprimer tous les éléments d'un tableau javascript s'ils sont présents dans un autre tableau.
// If I have this array:
var myArray = ['a', 'b', 'c', 'd', 'e', 'f', 'g'];
// and this one:
var toRemove = ['b', 'c', 'g'];
Je souhaite opérer sur myArray pour le laisser dans cet état: ['a', 'd', 'e', 'f']
Avec jQuery, j'utilise grep()
et inArray()
, ce qui fonctionne bien:
myArray = $.grep(myArray, function(value) {
return $.inArray(value, toRemove) < 0;
});
Existe-t-il un moyen pur javascript de le faire sans boucle ni épissage?
.filter()
. À la place, vous utiliserez des for
boucles. Vous pouvez éviter .splice()
si la commande d'origine n'a pas besoin d'être maintenue. Ou il existe des moyens de rendre .splice()
plus efficace si vous pensez qu'il y aura de nombreux éléments à supprimer.