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?
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
回答1:
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));
.
回答2:
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']);