yonui-ys
Version:
73 lines (61 loc) • 1.85 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.deepClone = deepClone;
exports.simpleMerge = simpleMerge;
exports.isArray = isArray;
exports.isFloat = isFloat;
function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
/* eslint-disable no-prototype-builtins */
/**
* 深拷贝
* @param {*} obj
*/
function deepClone(obj) {
var objClone = Array.isArray(obj) ? [] : {};
if (obj && _typeof(obj) === 'object') {
for (var key in obj) {
if (obj.hasOwnProperty(key)) {
if (obj[key] && _typeof(obj[key]) === 'object') {
objClone[key] = deepClone(obj[key]);
} else {
objClone[key] = obj[key];
}
}
}
}
return objClone;
}
/**
* 对象属性合并
* @param {*} target
* @param {*} config
* @param {*} copy
*/
function simpleMerge(target, config) {
var copy = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
if (Object.prototype.toString.call(config) !== '[object Object]') return target;
var result = copy ? deepClone(target) : target;
Object.keys(config).forEach(function (key) {
if (config[key]) {
result[key] = config[key];
}
});
return result;
}
/**
* 判断是否为数组
* @param {*} target
*/
function isArray(target) {
return Object.prototype.toString.call(target) === '[object Array]';
}
var floatRegex = /^[0-9]+\.?[0-9]+?$/;
/**
* 判断是否为小数
* @param {*} number
*/
function isFloat(number) {
return floatRegex.test(number);
}