Я ищу эффективный способ удалить все элементы из массива JavaScript, если они присутствуют в другом массиве.
// If I have this array:
var myArray = ['a', 'b', 'c', 'd', 'e', 'f', 'g'];
// and this one:
var toRemove = ['b', 'c', 'g'];
Я хочу использовать myArray, чтобы оставить его в таком состоянии: ['a', 'd', 'e', 'f']
Я использую jQuery grep()и inArray(), который хорошо работает:
myArray = $.grep(myArray, function(value) {
return $.inArray(value, toRemove) < 0;
});
Есть ли чистый способ сделать это без зацикливания и объединения?
.filter(). Вместо этого вы будете использовать forпетли. Вы можете избежать, .splice()если первоначальный заказ не нужно поддерживать. Или есть способы сделать .splice()более эффективными, если вы думаете, что будет много элементов для удаления.