प्रश्न लिंक: https://leetcode.com/problems/is-object-empty/description/
किसी ऑब्जेक्ट या सरणी को देखते हुए, यदि वह खाली है तो वापस लौटें।
आप मान सकते हैं कि ऑब्जेक्ट या ऐरे JSON.parse का आउटपुट है।
बहुत... हमें इस फ़ंक्शन के पैरामीटर के रूप में या तो एक ऐरे या एक ऑब्जेक्ट मिल रहा है जिसे ओबीजे कहा जाता है। (हाँ, मुझे पता है, सुपर रचनात्मक नाम, लेकिन यह बाद में समझ में आएगा!)
हमारा कार्य? पहले यह पता लगाने के लिए कुछ जादुई कोडिंग तरकीबें अपनाएं कि क्या यह ओबीजे एक सरणी या ऑब्जेक्ट है। फिर, उस ज्ञान के आधार पर, हम तय करेंगे कि आगे क्या करना है।
अंत में, हमें यह जांचना होगा कि यह ऑब्जेक्ट/सरणी खाली है या नहीं। सरल, सही? (या यह है...)
सबसे पहले चीज़ें: "एक सरणी तकनीकी रूप से जावास्क्रिप्ट में एक ऑब्जेक्ट है।" हाँ! यह सही है—सरणी JS में एक विशेष प्रकार की वस्तु है। तो, भ्रमित मत होइए!
ऑब्जेक्ट डिटेक्शन 101: हम typeof obj === 'ऑब्जेक्ट' && obj !== null का उपयोग करके जांच सकते हैं कि पैरामीटर वास्तव में एक ऑब्जेक्ट (या सरणी) है या नहीं। !== शून्य भाग क्यों? खैर, क्योंकि जेएस में शून्य एक विशेष मामला है। भले ही यह तकनीकी रूप से वस्तु प्रकार का है, यह शून्यता के खालीपन की तरह है। इसलिए, हम इसे बाहर कर देते हैं, बस मामले में (भले ही समस्या में स्पष्ट रूप से इसका उल्लेख नहीं किया गया हो, यह एक अच्छी आदत है)।
अपरिभाषित और शून्य तत्व: ऑब्जेक्ट और एरे दोनों में ऐसे गुण/तत्व हो सकते हैं जो अपरिभाषित या शून्य हैं। लेकिन चिंता की कोई बात नहीं - जब हम लंबाई की जाँच करेंगे तब भी वे गिनती करेंगे। उन्हें हमारी मान्यता से निःशुल्क पास नहीं मिलता!
क्या यह एक ऐरे है?: हम Array.isArray(obj) का उपयोग करके जांच सकते हैं कि पैरामीटर एक ऐरे है या नहीं। हालाँकि, यदि यह कोई वस्तु है तो दोबारा जाँचने की आवश्यकता नहीं है—हम पहले ही ऐसा कर चुके हैं।
var isEmpty = function (obj) { if (typeof obj === "object" && obj !== null) { // Check if it's an object and not null if (Array.isArray(obj)) { // If it's an array return obj.length === 0; // Return true if it's empty } else { // If it's an object return Object.keys(obj).length === 0; // Return true if there are no keys } } return false; // If it's neither an object nor an array, return false };
चरण 1: जांचें कि क्या यह कोई वस्तु है
सबसे पहले, हम यह सुनिश्चित करने के लिए typeof obj === 'ऑब्जेक्ट' && obj !== null का उपयोग करते हैं कि इनपुट एक ऑब्जेक्ट है और शून्य नहीं है। (क्योंकि हम सभी जानते हैं कि typeof null === 'ऑब्जेक्ट जावास्क्रिप्ट की अजीब विचित्रताओं में से एक है। धन्यवाद, जावास्क्रिप्ट!)
चरण 2: क्या यह एक सरणी है?
हम सरणियों और नियमित वस्तुओं के बीच अंतर करने के लिए Array.isArray(obj) का उपयोग करते हैं। ऐरे में लंबाई गुण होता है, इसलिए हम सीधे जांच सकते हैं कि क्या obj.length === 0.
चरण 3: क्या यह एक वस्तु है?
यदि यह एक सरणी नहीं है, तो हम object.keys(obj).length === 0 का उपयोग करके जांचते हैं कि यह एक ऑब्जेक्ट है या नहीं। यह विधि ऑब्जेक्ट में कुंजियों की संख्या लौटाती है। कोई चाबियाँ नहीं? ये खाली है!
चरण 4: डिफ़ॉल्ट मामला
यदि इनपुट कोई ऑब्जेक्ट नहीं है (या यह शून्य है), तो हम गलत रिटर्न देते हैं क्योंकि प्रश्न निर्दिष्ट करता है कि हम केवल ऑब्जेक्ट या एरे के साथ काम कर रहे हैं।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3