如何获得物体长度?
在控制台中,我的对象如下所示:
Object {
2: true,
3: true,
4: true
}
.length
会给我 undefined 。我只想得到results = 3
这个案例。
答案 0 :(得分:34)
var keys = Object.keys(objInstance);
var len = keys.length;
len是你的长度。"
在某些情况下,我还没有想到这不起作用的地方,但考虑到你的榜样,它应该做你需要的事情。
答案 1 :(得分:6)
将其中一些答案合并到
中app.filter('numkeys', function() {
return function(object) {
return Object.keys(object).length;
}
});
似乎有用
<div ng-show="(furry.animals | numkeys) > 10">lots of furry animals</div>
答案 2 :(得分:4)
您也可以使用过滤器
修改强>
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>
答案 3 :(得分:3)
你不想在任何想要获取长度的地方重复Object.keys(obj),因为代码可能会非常混乱。因此,只需将其放入一些个人项目片段库即可在整个网站上使用:
Object.prototype.length = function(){
return Object.keys(this).length
}
并且当您需要知道对象的长度时,您可以运行
exampleObject.length()
上面有一个问题,如果你创建一个具有“长度”键的对象,你将打破“原型”函数:
exampleObject : { length: 100, width: 150 }
但是您可以使用自己的同义词来表示长度,例如“l()”而不是“length()”
答案 4 :(得分:3)
可以通过以下代码获取
var itemsLength = Object.keys(your object).length;
答案 5 :(得分:1)
简短变种Object.keys($scope.someobject).length
答案 6 :(得分:0)
如果我们要从API中删除数据,我们还可以添加一个小的验证。
app.filter('objLength', function() {
return function(object) {
return object ? Object.keys(object).length : "";
}
});
答案 7 :(得分:0)
即使我也不明白为什么在Angular标记中无法通过'Object.keys'获得Objects的值。但是这里有一些简单的solution。看看。