मैं एक जावास्क्रिप्ट सरणी से सभी तत्वों को निकालने के लिए एक कुशल तरीका खोज रहा हूं यदि वे किसी अन्य सरणी में मौजूद हैं।
// 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;
});
वहाँ एक शुद्ध जावास्क्रिप्ट तरीका यह करने के लिए looping और splicing के बिना है?
.filter()। इसके बजाय आप forलूप का उपयोग करेंगे । आप बच सकते हैं .splice()यदि मूल आदेश को बनाए रखने की आवश्यकता नहीं है। या फिर .splice()अधिक कुशल बनाने के तरीके हैं यदि आपको लगता है कि हटाने के लिए कई आइटम होंगे।