2012-12-20 16 views
15

साथ रिक्त है मैं इस तरह एक वस्तु है:जांच करें कि वस्तु जावास्क्रिप्ट/jQuery

ricHistory = { 
    name1: [{ 
    test1: value1, 
    test2: value2, 
    test3: value3 
    }], 
    name2: [{ 
    test1: value1, 
    test2: value2, 
    test3: value3 
    }] 
}; 

अब मैं उदाहरण के लिए यदि जाँच करना चाहते हैं जावास्क्रिप्ट/jQuery के साथ name2 खाली है। मुझे विधि hasOwnProperty पता है। यह data.hasOwnProperty('name2') के लिए केवल तभी काम करता है जब नाम मौजूद है या नहीं, लेकिन मुझे यह जांचना है कि यह खाली है या नहीं।

+0

आपका प्रश्न करता है, तो एक वस्तु रिक्त है की जाँच करने के लिए कैसे पूछता है, फिर भी आपके प्रश्न के शरीर यदि एक सरणी रिक्त है की जाँच करने के लिए कैसे पूछता है । भविष्य के पाठकों के लिए कृपया अधिक विशिष्ट रहें। – Jared

+0

संभावित डुप्लिकेट [क्या वस्तु खाली है?] (Http://stackoverflow.com/questions/4994201/is-object-empty) – sierrasdetandil

उत्तर

6

इस प्रयास करें:

if (ricHistory.name2 && 
    ricHistory.name2 instanceof Array && 
    !ricHistory.name2.length) { 
    console.log('name2 is empty array'); 
} else { 
    console.log('name2 does not exists or is not an empty array.'); 
} 

समाधान ऊपर तुम्हें दिखाता हूँ कि क्या richHistory.name2, मौजूद है एक सरणी है और यह खाली नहीं है।

+0

के लिए बहुत कुछ क्यों तीनों चेक एक, बड़े, में नहीं डाले? –

2

इस उपयोगी समारोह का प्रयास करें:

function isEmpty(obj) { 
if(isSet(obj)) { 
    if (obj.length && obj.length > 0) { 
     return false; 
    } 

    for (var key in obj) { 
     if (hasOwnProperty.call(obj, key)) { 
      return false; 
     } 
    } 
} 
return true;  
}; 

function isSet(val) { 
if ((val != undefined) && (val != null)){ 
    return true; 
} 
return false; 
}; 
+0

एससेट क्या है ?? –

+0

क्षमा करें!:) यह एक और सहायक काम है: पी – stamat

+0

धन्यवाद 'isEmpty' फ़ंक्शन – terales

-2
if (ricHistory.name2 === undefined) { 
    //This is property has not been set (which is not really the same as empty though...) 
} 
56

आप अगर एक वस्तु रिक्त है देखने के लिए द्वारा jQuery.isEmptyObject()

चेक ऐसा कर सकते हैं (कोई गुण शामिल हैं)।

jQuery.isEmptyObject(object) 

उदाहरण:

function isSet(val) { return ((val != undefined) && (val != null));} 

मैं यह आसान सिर्फ बयान के बूलियन वापस जाने के लिए बजाय लगता है:

jQuery.isEmptyObject({}) // true 
jQuery.isEmptyObject({ foo: "bar" }) // false 

from Jquery

0

इसके बजाय आप ऐसा करके isSet छोटा कर सकता है सौंपने और फिर लौटने का।

+0

यह वास्तव में इस उत्तर के लिए एक टिप्पणी है http://stackoverflow.com/a/13973962/3810453 – Zanshin13

3

JQuery से एक और वाक्यविन्यास जो आप प्रोटोटाइप या इसी तरह का उपयोग नहीं कर रहे हैं और आप jQuery उपसर्ग के बजाय $ का उपयोग करना पसंद करते हैं;

$.isEmptyObject(object) 
0

मैं इस तरह मेरे कोड में हर समय जाना:

मेरी नियंत्रक मान लें रिटर्न नीचे की तरह कुछ:

$return['divostar'] = $this->report->get_additional_divostar_report($data); 
$return['success'] = true; 
return response()->json($return); 

Jquery में, मैं नीचे की तरह की जाँच करेगा:

if (jQuery.isEmptyObject(data.divostar)){ 
     html_result = "<p id='report'>No report yet</p>"; 
     $('#no_report_table').html(html_result).fadeIn('fast'); 
} 
0

आप यह object-empty पुन: प्रयोज्य घटक का भी उपयोग कर सकते हैं यह निर्धारित करने के लिए कि obj संदर्भ खाली है।

उदाहरण:

empty([]) // => true 
empty({}) // => true 
empty(1) // => false 
empty('') // => false 
empty('foo') // => true 

यह कैसे काम करता:

function isEmpty(obj: any): boolean { 
    for (const n in obj) if (hasOwnProperty(obj, n) && obj[n]) return false; // eslint-disable-line 
    return true; 
}; 
संबंधित मुद्दे