获取未定义的angularjs中的对象长度
如何获取对象长度 在控制台中,我的对象如下所示:获取未定义的angularjs中的对象长度,angularjs,Angularjs,如何获取对象长度 在控制台中,我的对象如下所示: Object { 2: true, 3: true, 4: true } .length将给我未定义的。我只想得到这个案例的results=3 var keys = Object.keys(objInstance); var len = keys.length; 其中len是你的“长度” 可能有一些情况我没有想到这在哪里不起作用,但它应该做你需要的,给出你的例子 您不想在任何需要获取长度的地方重复该Object.keys(obj),因为
Object {
2: true,
3: true,
4: true
}
.length
将给我未定义的。我只想得到这个案例的results=3
var keys = Object.keys(objInstance);
var len = keys.length;
其中len是你的“长度”
可能有一些情况我没有想到这在哪里不起作用,但它应该做你需要的,给出你的例子 您不想在任何需要获取长度的地方重复该Object.keys(obj),因为代码可能会变得非常混乱。因此,只需将其放在某个个人项目代码段库中,即可在整个网站上使用:
Object.prototype.length = function(){
return Object.keys(this).length
}
当你需要知道物体的长度时,你可以跑
exampleObject.length()
上面有一个问题,如果您创建的对象具有“长度”键,则会中断“原型”函数:
exampleObject : { length: 100, width: 150 }
但是您可以使用自己的长度同义词,比如“l()”而不是“length()”您还可以使用过滤器 编辑:
app.filter('objLength', function() {
return function(object) {
return Object.keys(object).length;
}
});
app.filter('objLength', function() {
return function(object) {
var count = 0;
for(var i in object){
count++;
}
return count;
}
});
旧答案:
app.filter('objLength', function() {
return function(object) {
return Object.keys(object).length;
}
});
app.filter('objLength', function() {
return function(object) {
var count = 0;
for(var i in object){
count++;
}
return count;
}
});
然后像这样使用它
<div ng-hide="(navigations._source.languages | objLength) == 1"> content</div>
内容
只需通过下面的代码即可获得
var itemsLength=Object.keys(您的对象).length代码>将这些答案中的一些组合到
app.filter('numkeys', function() {
return function(object) {
return Object.keys(object).length;
}
});
似乎有效
<div ng-show="(furry.animals | numkeys) > 10">lots of furry animals</div>
许多毛茸茸的动物
Short variantObject.keys($scope.someobject).length
如果我们从API检索数据,我们还可以添加一个小的验证
app.filter('objLength', function() {
return function(object) {
return object ? Object.keys(object).length : "";
}
});
甚至我都不明白为什么在角度标记中不能通过“Object.keys”获取对象的值。但这里有一些简单的问题。查看。一个更好的方法:app.filter('objLength',function(){return function(object){return object.keys(object.length;}})代码>谢谢。这很奇怪,但这里的关键时刻是,您需要首先获取密钥并将其分配给一个变量,然后才能获得长度。Object.keys(objInstance).length将不起作用这似乎是。。。我不知道monstro为什么说Object.keys(objInstance).length不起作用,尽管我确实在我提供的链接中看到了一些评论,表明它可能不适用于较旧的(IE8及以下)浏览器。使用现代浏览器尝试一下,您可能会对结果感到惊讶。这在控制台中有效,但在angular应用程序中无效,请参见上面的答案。检查此文档,您可以在应用程序中获得javascript或基于javascript的LIB中的对象长度可能是Just perfect的副本;)这是因为所有JavaScript对象都将此原型链用作JS核心功能的一部分,并且可能会产生其他问题。