获取变量长度

时间:2014-01-05 02:42:30

标签: javascript

尝试获取变量territories的长度,但当我territories.length时,它会给我0。当我使用console.log并查看JavaScript控制台时,它会显示

child 
{
    length: 0, 
    models: Array[0], 
    _byId: Object, 
    _events: Object, 
    _listenerId: "l11"
}

所以长度为0但是当我扩展它时,它表示长度为9。我希望它是9。我怎样才能获得length:9

2 个答案:

答案 0 :(得分:1)

您可以这样做以获取任何javascript对象中的属性数量,至少在现代浏览器中是这样的:

Object.keys(myObj).length;

您也可以手动执行此操作,例如

Object.prototype.length=function(){
    var count=0;
    for(var i in this){
        if(this.hasOwnProperty(i)){
            count++;
        }
    }
    return count;
}

答案 1 :(得分:0)

长度是正确的属性,但它取决于变量区域的类型。下面的字符串示例代码输出9。

var territories = "my string";
var length = territories.length;
alert(length);

由于在这种情况下,地区实际上是主干集合,您可以通过以下问题找到有关此问题的更多信息:Get collection length

不幸的是,您无法保存获取的集合数据,因为骨干网中的提取功能是异步的。您需要使用回调函数来执行您对length属性所需的任何操作。有关详细信息,请参阅How to return value from an asynchronous callback function?http://recurial.com/programming/understanding-callback-functions-in-javascript/