Tôi đang tìm kiếm một cách hiệu quả để loại bỏ tất cả các yếu tố khỏi một mảng javascript nếu chúng có mặt trong một mảng khác.
// If I have this array:
var myArray = ['a', 'b', 'c', 'd', 'e', 'f', 'g'];
// and this one:
var toRemove = ['b', 'c', 'g'];
Tôi muốn hoạt động trên myArray để nó ở trạng thái này: ['a', 'd', 'e', 'f']
Với jQuery, tôi đang sử dụng grep()
và inArray()
hoạt động tốt:
myArray = $.grep(myArray, function(value) {
return $.inArray(value, toRemove) < 0;
});
Có một cách javascript thuần túy để làm điều này mà không cần lặp và nối?
.filter()
. Thay vào đó, bạn sẽ sử dụng for
các vòng lặp. Bạn có thể tránh .splice()
nếu đơn hàng ban đầu không cần phải duy trì. Hoặc có nhiều cách để làm cho .splice()
hiệu quả hơn nếu bạn nghĩ rằng sẽ có nhiều mục để loại bỏ.