Eu estou procurando uma maneira eficiente de remover todos os elementos de uma matriz javascript, se eles estiverem presentes em outra matriz.
// If I have this array:
var myArray = ['a', 'b', 'c', 'd', 'e', 'f', 'g'];
// and this one:
var toRemove = ['b', 'c', 'g'];
Quero operar no myArray para deixá-lo neste estado: ['a', 'd', 'e', 'f']
Com jQuery, estou usando grep()
e inArray()
, que funciona bem:
myArray = $.grep(myArray, function(value) {
return $.inArray(value, toRemove) < 0;
});
Existe uma maneira javascript pura de fazer isso sem fazer loop e splicing?
.filter()
. Em vez disso, você usará for
loops. Você pode evitar .splice()
se o pedido original não precisar ser mantido. Ou existem maneiras de tornar .splice()
mais eficiente se você acha que haverá muitos itens a serem removidos.