获取angularjs中的对象长度是未定义的

god*_*101 12 angularjs

如何获得物体长度?

在控制台中,我的对象如下所示:

Object {
 2: true,
 3: true,
 4: true
}
Run Code Online (Sandbox Code Playgroud)

.length会给我不明确的.我只是想得到results = 3这个案子.

Aar*_*ett 36

var keys = Object.keys(objInstance);
var len = keys.length;
Run Code Online (Sandbox Code Playgroud)

len是你的"长度".

在某些情况下,我没有想到这不起作用,但鉴于你的例子,它应该做你需要的.


ken*_*nny 6

你也可以使用过滤器

编辑:

app.filter('objLength', function() { 
 return function(object) { 
  return Object.keys(object).length; 
 } 
});
Run Code Online (Sandbox Code Playgroud)

旧答案:

app.filter('objLength', function() {
 return function(object) {
  var count = 0;

  for(var i in object){
   count++;
  }
  return count;
 }
});
Run Code Online (Sandbox Code Playgroud)

然后像这样使用它

<div ng-hide="(navigations._source.languages | objLength) == 1"> content</div>
Run Code Online (Sandbox Code Playgroud)

  • 一个更好的方法:`app.filter('objLength', function() { return function(object) { return Object.keys(object).length; } });` (2认同)

com*_*ike 6

将这些答案中的一部分结合起来

app.filter('numkeys', function() {
  return function(object) {
    return Object.keys(object).length;
  }
});
Run Code Online (Sandbox Code Playgroud)

似乎工作

<div ng-show="(furry.animals | numkeys) > 10">lots of furry animals</div>
Run Code Online (Sandbox Code Playgroud)