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 for
loop. 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.