Saya mencari cara yang efisien untuk menghapus semua elemen dari array javascript jika mereka ada di array lain.
// If I have this array:
var myArray = ['a', 'b', 'c', 'd', 'e', 'f', 'g'];
// and this one:
var toRemove = ['b', 'c', 'g'];
Saya ingin beroperasi di myArray agar tetap seperti ini: ['a', 'd', 'e', 'f']
Dengan jQuery, saya menggunakan grep()dan inArray(), yang berfungsi dengan baik:
myArray = $.grep(myArray, function(value) {
return $.inArray(value, toRemove) < 0;
});
Apakah ada cara javascript murni untuk melakukan ini tanpa perulangan dan splicing?
.filter(). Sebagai gantinya Anda akan menggunakan forloop. Anda dapat menghindari .splice()jika pesanan asli tidak perlu dipertahankan. Atau ada cara untuk membuat .splice()lebih efisien jika Anda berpikir akan ada banyak item untuk dihapus.