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 forboucles. 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.