जावास्क्रिप्ट सरणी मान अपरिभाषित है ... मैं उसके लिए कैसे परीक्षण करूं?
तथा
जावास्क्रिप्ट में एक अपरिभाषित चर की जांच कैसे करें
जहां तक मेरा संबंध है ये गलत हैं:
कोशिश करते समय:
console.log(!fromToParameters[7].value.firstInput);
console.log(!!fromToParameters[7].value.firstInput);
console.log(fromToParameters[7].value.firstInput === undefined);
console.log(typeof fromToParameters[7].value.firstInput == 'undefined');
console.log(fromToParameters[7].value.firstInput !== undefined);
console.log(typeof fromToParameters[7].value.firstInput != 'undefined');
लेकिन यह (प्रविष्टि मौजूद है) ठीक काम करता है:
console.log(!fromToParameters[0].value.firstInput);
console.log(!!fromToParameters[0].value.firstInput);
console.log(fromToParameters[0].value.firstInput === undefined);
console.log(typeof fromToParameters[0].value.firstInput == 'undefined');
console.log(fromToParameters[0].value.firstInput !== undefined);
console.log(typeof fromToParameters[0].value.firstInput != 'undefined');
झूठा सच झूठ सच झूठ सच
क्या यह प्रतिक्रिया जेएस से अलग होने का सवाल है? मैं इन स्टैक ओवरफ्लो थ्रेड्स के समान क्यों नहीं कर सकता?
अपडेट करें :
इसलिए आप एक लापता सरणी तत्व को बिल्कुल भी इंगित नहीं कर सकते।
नीचे दिए गए उत्तरों की जाँच करें।
मुझे लगता है कि मैं एक कॉन्स्ट में संग्रहीत एक array.lenght का उपयोग करूँगा कि मैं केस-दर-मामला आधार पर मेरी सरणी प्रविष्टियों को संशोधित करने की अनुमति देने या अस्वीकार करने के लिए अपने "फॉर" लूप के भीतर इसके खिलाफ अपनी वृद्धि की जांच करता हूं।
यह वास्तव में कष्टप्रद है कि आप केवल जेएस से नहीं पूछ सकते हैं कि एक मौजूदा सरणी अनुक्रमणिका का एक बहुत बड़ा संस्करण मौजूद है या नहीं।
ऐसा लगता है कि यह सीधा सामान होगा: सूचकांक को इंगित नहीं कर सकता? तो नहीं। न यह चर और न ही कोई अन्य चर इस सूचकांक में मौजूद है। का अंत।
जेएस के लोगों को निश्चित रूप से इस तरह कुछ सरल जोड़ने के लिए एक नोट रखना चाहिए।
मैं अपना कोड पोस्ट करने के लिए ललचा रहा हूं क्योंकि मेरे पास कुछ ऐसा है जो मुझे वह करने की अनुमति देता है जो मैं चाहता हूं (एक इंडेक्स को बहुत सारे अपरिभाषित के साथ कॉल करना और इसके बजाय "" के साथ एक ऑब्जेक्ट प्राप्त करना) लेकिन यह थोड़ा राक्षसी है।
2 जवाब
आपको ऐसा करना चाहिए:
console.log(fromToParameters[7] && fromToParameters[7].value.firstInput);
console.log(!!fromToParameters[7] && fromToParameters[7].value.firstInput);
console.log( fromToParameters[7]&& typeof fromToParameters[7].value.firstInput == 'undefined');
मैंने अभी चेक जोड़ा है। इसलिए यदि fromToParameters[7]
, undefined
या null
है, तो आपका कोड नहीं टूटेगा।
पहले अनुक्रमणिका की जाँच करें (उदा: console.log(!yourArray[x]), फिर यह निर्भर करता है कि क्या वह परीक्षण पास या विफल रहता है, अपनी इच्छित अनुक्रमणिका/गुणों को एक्सेस/जोड़ें।
संबंधित सवाल
जुड़े हुए प्रश्न
नए सवाल
arrays
एक सरणी एक आदेशित रैखिक डेटा संरचना है जिसमें तत्वों (मूल्यों, चर, या संदर्भों) का एक संग्रह होता है, प्रत्येक को एक या अधिक अनुक्रमित द्वारा पहचाना जाता है। जब सरणियों के विशिष्ट प्रकारों के बारे में पूछा जाता है, तो इसके बजाय इन संबंधित टैगों का उपयोग करें: [वेक्टर], [सरणी सूची], [मैट्रिक्स]। इस टैग का उपयोग करते समय, एक सवाल जो प्रोग्रामिंग भाषा के लिए विशिष्ट होता है, उस प्रश्न को उस प्रोग्रामिंग भाषा के साथ टैग करें जिसका उपयोग किया जा रहा है।