尝试获取变量territories
的长度,但当我territories.length
时,它会给我0
。当我使用console.log
并查看JavaScript控制台时,它会显示
child
{
length: 0,
models: Array[0],
_byId: Object,
_events: Object,
_listenerId: "l11"
}
所以长度为0
但是当我扩展它时,它表示长度为9
。我希望它是9
。我怎样才能获得length:9
?
答案 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/