mutants-appfx
Version:
appfx module
117 lines (106 loc) • 3.15 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.avg = exports.sum = exports.min = exports.max = exports.count = undefined;
var _toConsumableArray2 = require("babel-runtime/helpers/toConsumableArray");
var _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
// 聚合函数库
// COUNT():统计指定列不为NULL=>undefined的记录行数;
var count = exports.count = function count(array, by) {
if (array === void 0) {
return 0;
}
if (!Array.isArray(array)) {
if (by) {
return array[by] !== void 0 ? 1 : 0;
}
return 1;
}
if (by) {
return array.filter(function (it) {
return it[by] !== void 0;
}).length;
}
return array.filter(function (it) {
return it !== void 0;
}).length;
};
// MAX():计算指定列的最大值,如果指定列是字符串类型,那么使用字符串排序运算=>NaN;
var max = exports.max = function max(array, by) {
if (array === void 0) {
return NaN;
}
if (!Array.isArray(array)) {
if (by) {
return array[by] !== void 0 ? array[by] : NaN;
}
return parseFloat(array);
}
if (by) {
return Math.max.apply(Math, (0, _toConsumableArray3.default)(array.map(function (it) {
return it[by];
})));
}
return Math.max.apply(Math, (0, _toConsumableArray3.default)(array));
};
// MIN():计算指定列的最小值,如果指定列是字符串类型,那么使用字符串排序运算=>NaN
var min = exports.min = function min(array, by) {
if (array === void 0) {
return NaN;
}
if (!Array.isArray(array)) {
if (by) {
return array[by] !== void 0 ? array[by] : NaN;
}
return parseFloat(array);
}
if (by) {
return Math.min.apply(Math, (0, _toConsumableArray3.default)(array.map(function (it) {
return it[by];
})));
}
return Math.min.apply(Math, (0, _toConsumableArray3.default)(array));
};
// SUM():计算指定列的数值和,如果指定列类型不是数值类型,那么计算结果为0=>NaN;
var sum = exports.sum = function sum(array, by) {
if (array === void 0) {
return NaN;
}
if (!Array.isArray(array)) {
if (by) {
return array[by] !== void 0 ? array[by] : NaN;
}
return parseFloat(array);
}
if (by) {
return array.reduce(function (v, it) {
return v + parseFloat(it[by]);
}, 0);
}
return array.reduce(function (v, it) {
return v + parseFloat(it);
}, 0);
};
// AVG():计算指定列的平均值,如果指定列类型不是数值类型,那么计算结果为0=>NaN;
var avg = exports.avg = function avg(array, by) {
if (array === void 0) {
return NaN;
}
if (!Array.isArray(array)) {
if (by) {
return array[by] !== void 0 ? array[by] : NaN;
}
return parseFloat(array);
}
if (by) {
return array.reduce(function (v, it) {
return v + parseFloat(it[by]);
}, 0) / array.length;
}
return array.reduce(function (v, it) {
return v + parseFloat(it);
}, 0) / array.length;
};
//# sourceMappingURL=AggregatesUtil.js.map