cyber-web-ui
Version:
spring-cyber前端ui框架
94 lines (93 loc) • 2.81 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _big = _interopRequireDefault(require("./big.js"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/**
* @param {String} method 要调用的方法
* @param {String|Number} num1 第一个参数
* @param {String|Number|String[]|Number[]} num2
*/
var bigjs = function bigjs(method, num1, num2) {
// 没有该方法
if (!new _big.default(1)[method]) {
throw Error("".concat(method, " is not a function"));
}
if (!/^plus$|^minus$|^times$|^div$/.test(method)) {
// 调用自定义方法
if (bigjs[method]) return bigjs[method](num1, num2);
// 没有该方法
else {
throw Error("".concat(method, " is not a function"));
}
}
// 计算数值
var sum = new _big.default(bigjs.disposeValue(num1));
num2 = bigjs.disposeValue(num2);
if (Array.isArray(num2)) {
num2.forEach(function (item) {
sum = sum[method](new _big.default(item));
});
} else {
sum = sum[method](new _big.default(num2));
}
return sum.toNumber();
};
/**
* @function disposeValue 处理数据
* @param {any|any[]} target 要处理的数据
*/
bigjs.disposeValue = function (target) {
if (typeof target == 'number') return target;
if (Array.isArray(target)) {
return target.map(function (item) {
return bigjs.disposeValue(item);
});
} else {
target = Number(target);
return isNaN(target) ? 0 : target;
}
};
/**
* @function plus 加法
* @param {String|Number} num1 第一个参数
* @param {String|Number|String[]|Number[]} num2 第二个参数,可以传数组
*/
bigjs.plus = function (num1, num2) {
return bigjs('plus', num1, num2);
};
/**
* @function minus 减法
* @param {String|Number} num1 第一个参数
* @param {String|Number|String[]|Number[]} num2 第二个参数,可以传数组
*/
bigjs.minus = function (num1, num2) {
return bigjs('minus', num1, num2);
};
/**
* @function times 乘法
* @param {String|Number} num1 第一个参数
* @param {String|Number|String[]|Number[]} num2 第二个参数,可以传数组
*/
bigjs.times = function (num1, num2) {
return bigjs('times', num1, num2);
};
/**
* @function div 除法
* @param {String|Number} num1 第一个参数
* @param {String|Number|String[]|Number[]} num2 第二个参数,可以传数组
*/
bigjs.div = function (num1, num2) {
return bigjs('div', num1, num2);
};
/**
* @function pow 幂运算
* @param {String|Number} num1 第一个参数
* @param {Number} num2 第二个参数,需要传正整数
*/
bigjs.pow = function (num1, num2) {
return new _big.default(bigjs.disposeValue(num1)).pow(num2).toNumber();
};
var _default = exports.default = bigjs;