*
@method sum([map])
@returns Number
@short Sums all values in the array.
@extra [map] may be a function mapping the value to be summed or a string acting as a shortcut.
@example

[1,2,2].sum()                           -> 5
+   [{age:35},{age:12},{age:12}].sum(function(n) {
return n.age;
});                                     -> 59
[{age:35},{age:12},{age:12}].sum('age') -> 59

*
function(map) {
      var arr = map ? this.map(map) : this;
      return arr.length > 0 ? arr.reduce(function(a,b) { return a + b; }) : 0;
    }