2

我使用下划线来计算对象长度。_.size(object). 因为这个对象是由 angularjs 处理的,所以$$hashKey对象中有一个属性使长度 1 比它应该的大。在angularjs中计算对象长度的正确方法是什么?

4

2 回答 2

9

这会吗?_.size(_.omit(object, '$$hashKey'));

更新

angular.copy()为你脱衣$$hashKey。所以看起来更 Angular 的方式是_.size(angular.copy(object));.

于 2013-06-27T05:48:51.493 回答
0

怎么样_.size(angularObject) - 1;

如果这还不够,您当然可以创建自己的不计算大小的函数$$hashKey

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

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

    return size;
  } 
});

例子:

var len = _.mySize(angularObject, ['$$hashKey']);
于 2013-06-27T05:53:50.313 回答