2011-01-15 12 views

उत्तर

20

आप सभी तत्व पर पाश करना होगा उनकी गणना:

function objectLength(myObject:Object):int { 
var cnt:int=0; 

for (var s:String in myObject) cnt++; 

return cnt; 
} 

var o:Object={foo:"hello", bar:"world"}; 
trace(objectLength(o)); // output 2 
+1

जावास्क्रिप्ट की ऑब्जेक्ट.कीज़() – hrabinowitz

0

यहां तक ​​कि छोटे यहाँ कोड:

var o:Object={foo:"hello",bar:"world",cnt:2}; 
trace(o.cnt); // output 2; 

बस में बहुत अंतिम तर्क अद्यतन करने के लिए याद वस्तु सूची अगर कभी भी इसमें कुछ जोड़ा जाता है। मुझे लगता है कि इस दृष्टिकोण का मुख्य नकारात्मक हिस्सा है। और अब, ज़ाहिर है, .cnt वास्तव में वास्तविक सूची की लंबाई नहीं लौटाता है, बल्कि इसकी सूची लंबाई है - 1.

+0

जैसे बेहतर एपीआई के लिए कॉल करने के लिए लगता है मुश्किल हो जाओ। 'cnt' उन मामलों में गलत हो सकता है जहां एक संपत्ति पहले से मौजूद संपत्ति को ओवरराइट करती है, या जब कोई संपत्ति मौजूदा के बिना हटा दी जाती है। इस प्रकार, ऑब्जेक्ट संशोधित होने पर हर बार जांच की आवश्यकता होगी। –

संबंधित मुद्दे