Szukam skutecznego sposobu usunięcia wszystkich elementów z tablicy javascript, jeśli są one obecne w innej tablicy.
// If I have this array:
var myArray = ['a', 'b', 'c', 'd', 'e', 'f', 'g'];
// and this one:
var toRemove = ['b', 'c', 'g'];
Chcę operować myArray, aby pozostawić go w tym stanie: ['a', 'd', 'e', 'f']
W jQuery używam grep()i inArray(), co działa dobrze:
myArray = $.grep(myArray, function(value) {
return $.inArray(value, toRemove) < 0;
});
Czy istnieje czysty sposób javascript, aby to zrobić bez zapętlania i łączenia?
.filter(). Zamiast tego użyjesz forpętli. Można tego uniknąć, .splice()jeśli oryginalne zamówienie nie musi być utrzymywane. Lub istnieją sposoby na .splice()zwiększenie wydajności, jeśli uważasz, że będzie wiele rzeczy do usunięcia.