javascript как найти количество детей в объекте

есть ли способ найти количество детей в объекте javascript, кроме запуска цикла и использования счетчика? Я могу использовать 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);
}

2 ответов


следующие работы в ECMAScript5 (Javascript 1.85)

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

если этот объект на самом деле является массивом, .длина всегда даст вам количество индексов. Если вы ссылаетесь на объект, и вы хотите получить количество атрибутов / ключей в объекте, я не знаю другого способа, кроме счетчика:

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++;