2011-08-16 16 views
5

क्या लूप चलाने और काउंटर का उपयोग करने के अलावा जावास्क्रिप्ट ऑब्जेक्ट में बच्चों की संख्या को खोजने का कोई तरीका है? यदि यह मदद करेगा तो मैं jquery का लाभ उठा सकता हूं। मैं यह कर रहा हूं:जावास्क्रिप्ट किसी ऑब्जेक्ट में बच्चों की संख्या कैसे प्राप्त करें

var childScenesObj = []; 
var childScenesLen = scenes[sceneID].length; //need to find number of children of scenes[sceneID]. This obviously does not work, as it an object, not an array. 


for (childIndex in scenes[sceneID].children) { 
    childSceneObj = new Object(); 
    childSceneID = scenes[sceneID].children[childIndex]; 
    childSceneNode = scenes[childSceneID]; 
    childSceneObj.name = childSceneNode.name; 
    childSceneObj.id = childSceneID; 
    childScenesObj .push(childSceneObj); 
} 
+1

jQuery आधारित जवाब का फायदा उठाते ... – jondavidjohn

+0

आप पाश में प्रत्येक यात्रा पर एक नया 'childScenesObj' बना रहे हैं तो खुद पर इसे आगे बढ़ाने का इंतजार कर। मुझे नहीं लगता कि यह काम करेगा। –

+0

में आपको एक और 'var' की आवश्यकता है मैं jquery का उपयोग कर सकता हूं। – mheavers

उत्तर

25

ECMAScript5 में निम्नलिखित काम करता है (जावास्क्रिप्ट 1.85: आप एक वस्तु की चर्चा करते हुए रहे हैं और आप वस्तु में विशेषताओं/कुंजियों की संख्या प्राप्त करना चाहते हैं, वहाँ कोई रास्ता नहीं मैं एक काउंटर से है कि अन्य को पता है)

var x = {"1":1, "A":2}; 
Object.keys(x).length; //outputs 2 
+0

+1 का उपयोग करें! महान खोज! – Brian

0

कि वस्तु वास्तव में किसी सरणी है, तो .length हमेशा आप अनुक्रमित की संख्या मिल जाएगा।

var myArr = []; 
alert(myArr.length);// 0 
myArr.push('hi'); 
alert(myArr.length);// 1 

var myObj = {}; 
myObj["color1"] = "red"; 
myObj["color2"] = "blue"; 

// only way I know of to get "myObj.length" 
var myObjLen = 0; 
for(var key in myObj) 
    myObjLen++; 
+0

आपको ['Object.hasOwnProperty'] (https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/ का उपयोग करके 'इन ... लूप' में प्रोटोटाइप से गणना करने योग्य गुणों को फ़िल्टर करने की आवश्यकता है वस्तु/hasOwnProperty)। –

+0

क्या आप एक पहेली को पोस्ट कर सकते हैं जो ज़रूरत को प्रदर्शित करता है? इससे पहले कभी भी महत्वपूर्ण गणना के साथ किसी मुद्दे में भाग न लें .... इसे देखने के लिए बहुत उत्सुक होगा ... – Brian

+0

http://jsfiddle.net/mattball/YkXzU/ क्या मुझे अब कोई इलाज मिलता है? (! जिंग) –

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

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