angularjs计算物体长度

时间:2013-06-27 05:23:21

标签: javascript angularjs underscore.js

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

2 个答案:

答案 0 :(得分:9)

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

<强>更新

angular.copy()为您排除$$hashKey。所以看起来更像Angular的方式是_.size(angular.copy(object));

答案 1 :(得分: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']);