Ich suche nach einer effizienten Möglichkeit, alle Elemente aus einem Javascript-Array zu entfernen, wenn sie in einem anderen Array vorhanden sind.
// If I have this array:
var myArray = ['a', 'b', 'c', 'd', 'e', 'f', 'g'];
// and this one:
var toRemove = ['b', 'c', 'g'];
Ich möchte myArray bearbeiten, um es in diesem Zustand zu belassen: ['a', 'd', 'e', 'f']
Mit jQuery verwende ich grep()und inArray(), was gut funktioniert:
myArray = $.grep(myArray, function(value) {
return $.inArray(value, toRemove) < 0;
});
Gibt es eine reine Javascript-Möglichkeit, dies ohne Schleifen und Spleißen zu tun?
.filter(). Stattdessen verwenden Sie forSchleifen. Sie können vermeiden, .splice()dass die ursprüngliche Bestellung nicht gepflegt werden muss. Oder es gibt Möglichkeiten, .splice()effizienter zu arbeiten, wenn Sie glauben, dass viele Elemente entfernt werden müssen.