/** * 是 Object 或 Array * @param {*} value 任意值 * @returns {boolean} */ export function isObject(value: any): boolean { return value && (typeof value === "object"); } /** * 是 number * @param {*} num 任意值 * @returns {boolean} */ export function isNumber(num: any) { return typeof num === "number" && !isNaN(num) } export function compareVersion(version1, version2) { const arr1 = version1.split('.') const arr2 = version2.split('.') const length1 = arr1.length const length2 = arr2.length const minlength = Math.min(length1, length2) let i = 0 for (i; i < minlength; i++) { let a = parseInt(arr1[i]) let b = parseInt(arr2[i]) if (a > b) { return 1 } else if (a < b) { return -1 } } if (length1 > length2) { for (let j = i; j < length1; j++) { if (parseInt(arr1[j]) != 0) { return 1 } } return 0 } else if (length1 < length2) { for (let j = i; j < length2; j++) { if (parseInt(arr2[j]) != 0) { return -1 } } return 0 } return 0 } export function uuid(len=5, radix=8) { const chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'.split(''); const uuid = []; radix = radix || chars.length; if (len) { // Compact form for (let i = 0; i < len; i++) uuid[i] = chars[0 | Math.random() * radix]; } else { // rfc4122, version 4 form let r; // rfc4122 requires these characters uuid[8] = uuid[13] = uuid[18] = uuid[23] = '-'; uuid[14] = '4'; // Fill in random data. At i==19 set the high bits of clock sequence as // per rfc4122, sec. 4.1.5 for (let i = 0; i < 36; i++) { if (!uuid[i]) { r = 0 | Math.random() * 16; uuid[i] = chars[(i == 19) ? (r & 0x3) | 0x8 : r]; } } } return uuid.join(''); }