Sto cercando un modo efficiente per rimuovere tutti gli elementi da un array javascript se sono presenti in un altro array.
// If I have this array:
var myArray = ['a', 'b', 'c', 'd', 'e', 'f', 'g'];
// and this one:
var toRemove = ['b', 'c', 'g'];
Voglio operare su myArray per lasciarlo in questo stato: ['a', 'd', 'e', 'f']
Con jQuery, sto usando grep()e inArray(), che funziona bene:
myArray = $.grep(myArray, function(value) {
return $.inArray(value, toRemove) < 0;
});
Esiste un modo javascript puro per farlo senza loop e splicing?
.filter(). Invece userete i forloop. Puoi evitare .splice()che l'ordine originale non debba essere mantenuto. Oppure ci sono modi per rendere .splice()più efficiente se pensi che ci saranno molti elementi da rimuovere.