admin管理员组

文章数量:1291007

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?

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?

Share Improve this question asked Jun 27, 2013 at 5:23 HarryHarry 55k76 gold badges185 silver badges270 bronze badges 0
Add a ment  | 

2 Answers 2

Reset to default 9

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));.

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']);

本文标签: javascriptangularjs counting object lengthStack Overflow