angularjs counting object length

2019-03-01 06:01发布

I'm using underscore to count object length. _.size(object). Because this object is being handled by angularjs there's a $$hashKey property in the object that's making the length 1 larger than it should be. What's the correct way to count object lengths in angularjs?

2条回答
老娘就宠你
2楼-- · 2019-03-01 06:14

Will this do? _.size(_.omit(object, '$$hashKey'));

Updated

angular.copy() strips $$hashKey out for you. So it seems a more Angular way would be _.size(angular.copy(object));.

查看更多
祖国的老花朵
3楼-- · 2019-03-01 06:25

What about _.size(angularObject) - 1; ?

If this isn't enough, you can of course create your own size function that dosen't count the $$hashKey:

_.extend(_, { 
   mySize: function(collection, ignored) {
    var size = 0,

    _.each(collection, function(value, key) {
      if (!_.contains(ignored, key)) {
        size++;
      }
    });

    return size;
  } 
});

Example:

var len = _.mySize(angularObject, ['$$hashKey']);
查看更多
登录 后发表回答