जावास्क्रिप्ट में किसी ऐरे से विशिष्ट एलिमेंट कैसे हटाएं: उदाहरणों के साथ विस्तृत गाइड
\n\nनमस्ते, साथी डेवलपर! यदि आपने कभी जावास्क्रिप्ट में लिखा है, तो आपने निश्चित रूप से ऐसी स्थिति का सामना किया होगा जहाँ आपको किसी ऐरे से विशिष्ट एलिमेंट हटाना होता है। यह एक सरल कार्य लगता है, लेकिन शुरुआती (और अनुभवी प्रोग्रामर भी) अक्सर भ्रमित हो जाते हैं: splice? filter? या शायद delete? या फिर खुद का तरीका बनाएं?
\n\nसवाल "How can I remove a specific item from an array in JavaScript?" Stack Overflow पर लाखों व्यूज के साथ सबसे लोकप्रिय प्रश्नों में से एक है। और यह कोई संयोग नहीं है: ऐरे JS में डेटा के साथ काम करने का आधार हैं, और उन्हें सही तरीके से साफ करना एक must-have कौशल है।
\n\nइस लेख में, हम जावास्क्रिप्ट में ऐरे से एलिमेंट हटाने के 5 सिद्ध तरीकों पर चर्चा करेंगे। आप जानेंगे कि कौन सी विधि तेज़ है, कौन सी पढ़ने में साफ है, और प्रत्येक का उपयोग किन परिस्थितियों में सबसे अच्छा होता है। चलिए शुरू करते हैं!
\n\n1. splice() विधि — क्लासिक तरीका
\n\nचलिए सबसे लोकप्रिय तरीके से शुरू करते हैं — splice()। यह विधि मूल ऐरे को बदलती है, एलिमेंट को हटाती, बदलती या जोड़ती है। एक एलिमेंट हटाने के लिए सिंटैक्स इस प्रकार है:
array.splice(index, 1);\n\nपहला पैरामीटर हटाए जाने वाले एलिमेंट का इंडेक्स है, दूसरा हटाए जाने वाले एलिमेंट की संख्या है (1 का मतलब है कि हम केवल एक हटा रहे हैं)।
\n\nउदाहरण:
\n\nlet fruits = ['सेब', 'केला', 'नाशपाती', 'संतरा'];\n\n// 'केला' हटाएं (इंडेक्स 1)\nfruits.splice(1, 1);\n\nconsole.log(fruits); // ['सेब', 'नाशपाती', 'संतरा']\n\nमहत्वपूर्ण: splice() मूल ऐरे को बदलता है। यदि आपको एक कॉपी चाहिए — पहले let copy = [...array] करें।
कब उपयोग करें: जब आप एलिमेंट का इंडेक्स सटीक रूप से जानते हैं। स्थिति के अनुसार हटाने के लिए आदर्श।
\n\n2. indexOf() + splice() का संयोजन — मान के अनुसार हटाना
\n\nलेकिन क्या होगा यदि हम इंडेक्स नहीं जानते, लेकिन मान जानते हैं? यहाँ indexOf() हमारी मदद करता है — यह दिए गए मान वाले पहले एलिमेंट का इंडेक्स ढूंढता है (या यदि एलिमेंट नहीं है तो -1 लौटाता है)।
let numbers = [10, 20, 30, 40, 50];\nlet itemToRemove = 30;\n\nlet index = numbers.indexOf(itemToRemove);\nif (index !== -1) {\n numbers.splice(index, 1);\n}\n\nconsole.log(numbers); // [10, 20, 40, 50]\n\nमहत्वपूर्ण: यह विधि केवल पहली उपस्थिति को हटाती है। यदि ऐरे में कई समान एलिमेंट हैं — बाकी रह जाएंगे।
\n\nकब उपयोग करें: जब आपको मान के अनुसार किसी ऐरे से विशिष्ट एलिमेंट हटाना हो, और आप सुनिश्चित हों कि एलिमेंट केवल एक बार आता है।
\n\n3. filter() विधि — उन लोगों के लिए जो सफाई पसंद करते हैं
\n\nfilter() विधि — मेरी व्यक्तिगत पसंदीदा। यह मूल ऐरे को नहीं बदलती, बल्कि एक नया ऐरे बनाती है जिसमें केवल वे एलिमेंट होते हैं जो जांच पास करते हैं। यह कोड को अधिक पूर्वानुमानित और सुरक्षित बनाता है।
let numbers = [10, 20, 30, 40, 50];\nlet itemToRemove = 30;\n\nlet filteredNumbers = numbers.filter(num => num !== itemToRemove);\n\nconsole.log(filteredNumbers); // [10, 20, 40, 50]\nconsole.log(numbers); // [10, 20, 30, 40, 50] (मूल नहीं बदला)\n\nलाभ: मान की सभी उपस्थितियों को हटाता है। यदि ऐरे में दो संख्या 30 थीं — दोनों गायब हो जाएंगी।
\n\nनुकसान: एक नया ऐरे बनाता है, जो बहुत बड़े ऐरे के साथ काम करते समय कम कुशल हो सकता है (लेकिन 99% कार्यों के लिए यह महत्वपूर्ण नहीं है)।
\n\nकब उपयोग करें: जब अपरिवर्तनीयता (मूल डेटा न बदलना) की आवश्यकता हो या सभी डुप्लिकेट हटाने हों।
\n\n4. delete ऑपरेटर — खतरनाक लेकिन तेज़
\n\ndelete ऑपरेटर किसी ऑब्जेक्ट की प्रॉपर्टी को हटाता है। चूंकि ऐरे भी एक ऑब्जेक्ट है, इसे ऐरे पर भी लागू किया जा सकता है। लेकिन सावधान रहें: यह एक "छेद" (खाली एलिमेंट) छोड़ देता है।
let fruits = ['सेब', 'केला', 'नाशपाती'];