2011-08-16 32 views
5

có cách nào để tìm số lượng trẻ em trong một đối tượng javascript khác với việc chạy vòng lặp và sử dụng bộ đếm không? Tôi có thể sử dụng jquery nếu nó giúp. Tôi đang thực hiện việc này:javascript cách tìm số lượng trẻ em trong một đối tượng

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

chờ đợi để pounce trên câu trả lời jquery dựa ... – jondavidjohn

+0

Bạn đang làm cho một mới 'childScenesObj' tại mỗi lần lặp trong vòng lặp, sau đó đẩy nó lên bản thân. Tôi không nghĩ rằng điều này sẽ làm việc ra. Bạn cần một 'var' trong đó –

+0

Tôi có thể sử dụng jquery. – mheavers

Trả lời

25

Các tác phẩm sau đây trong ECMAScript5 (javascript 1,85)

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

+1 cho điều đó! Tuyệt vời tìm! – Brian

0

Nếu đối tượng đó thực sự là Mảng, .length sẽ luôn giúp bạn có được số chỉ mục. Nếu bạn đang đề cập đến một đối tượng và bạn muốn để có được những số thuộc tính/phím trong đối tượng, không có cách nào mà tôi biết để mà khác hơn là một người truy cập:

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

Bạn cần lọc các thuộc tính có thể đếm được từ nguyên mẫu trong vòng lặp 'for ... in' đó bằng [' Object.hasOwnProperty'] (https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/ Object/hasOwnProperty). –

+0

Bạn có thể đăng một câu đố thể hiện sự cần thiết không? Không bao giờ gặp vấn đề với việc liệt kê chính trước ... sẽ rất quan tâm để xem nó ... – Brian

+0

http://jsfiddle.net/mattball/YkXzU/ bây giờ tôi có được điều trị không? –

Các vấn đề liên quan