@newdash/newdash
Version:
javascript/typescript utility library
37 lines (36 loc) • 1.26 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.meanBy = void 0;
const baseSum_1 = __importDefault(require("./.internal/baseSum"));
const getIteratee_1 = __importDefault(require("./.internal/getIteratee"));
/**
* Used as references for various `Number` constants.
* @ignore
*/
const NAN = Number.NaN;
/**
* This method is like `mean` except that it accepts `iteratee` which is
* invoked for each element in `array` to generate the value to be averaged.
* The iteratee is invoked with one argument: (value).
*
* @since 5.11.0
* @category Math
* @param {Array} array The array to iterate over.
* @param {Function} iteratee The iteratee invoked per element.
* @returns {number} Returns the mean.
* @example
*
* const objects = [{ 'n': 4 }, { 'n': 2 }, { 'n': 8 }, { 'n': 6 }]
*
* meanBy(objects, ({ n }) => n)
* // => 5
*/
function meanBy(array, iteratee) {
const length = array == null ? 0 : array.length;
return length ? ((0, baseSum_1.default)(array, (0, getIteratee_1.default)(iteratee, 2)) / length) : NAN;
}
exports.meanBy = meanBy;
exports.default = meanBy;