angular-filter
Version:
Bunch of useful filters for angularJS(with no external dependencies!)
34 lines (32 loc) • 831 B
JavaScript
/**
* @ngdoc filter
* @name min
* @kind function
*
* @description
* Math.min will get an array and return the min value. if an expression
* is provided, will return min value by expression.
*/
angular.module('a8m.math.min', [])
.filter('min', ['$parse', function ($parse) {
return function (input, expression) {
if(!isArray(input)) {
return input;
}
return isUndefined(expression)
? Math.min.apply(Math, input)
: input[indexByMin(input, expression)];
};
/**
* @private
* @param array
* @param exp
* @returns {number|*|Number}
*/
function indexByMin(array, exp) {
var mappedArray = array.map(function(elm){
return $parse(exp)(elm);
});
return mappedArray.indexOf(Math.min.apply(Math, mappedArray));
}
}]);